A
link
如果想要\(x_1+y_2=x_2+y_1\),就是\(x_1-x_2=y_1-y_2\)即可,那么我们可以存一下每一个\(i\)的\(x\)与\(y\)的差,每到一个\(i\)就看一下前面有几个的差和它相等,这一个就可以和多少个组上对。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,ans;
int x[1000005],y[1000005];
int c[1000005];
map<int,int> mp;
signed main(){
cin >> n;
for(int i = 1;i <= n;++ i){
scanf("%d %d",&x[i],&y[i]);
c[i] = y[i]-x[i];
}
for(int i = 1;i <= n;++ i){
ans += mp[c[i]];
mp[c[i]]++;
}
cout << ans;
return 0;
}