n个朋友的位置用(xi,yi)表示。他们想凑成4人一组玩桥牌,但组成4个人的队伍的前提是:这4个人关于某一点对称,即任何一个人关于对称点旋转180度得到的位置是另外一个人所在的位置。
计算满足条件的四人组合有几种。
用map计算即可,但是考试的时候sb了,计数计错了
namespace solve {
std::map<std::pair<int, int> , int >mp;
int main() {
rep(i, 1, n) {
rep(j, i + 1, n) {
int x = 1.0 * (a[i].x + a[j].x) ;
int y = 1.0 * (a[i].y + a[j].y) ;
++mp[std::make_pair(x,y)];
}
}
ans=0;
auto it=mp.begin();
for(;it!=mp.end();++it){
int t=(it->second);
ans+=1ll*(t)*(t-1)/2;
}
out(ans,'\n');
}
}