题目
原题链接:B. Wet Shark and Bishops
题意
在一个1000*1000的棋盘上,给出n个主教的位置,问有几对可以互相攻击。
参考了其他作者的思路和代码。主对角线和副对角线计算为x+y和x-y+1000,由此得到不同对角线上的主教个数。
代码
#include
using namespace std;
int main() {
int n,l,r,a[2005]={0},b[2005]={0};
cin>>n;
for(int i=0;i>l>>r;
a[l+r]++;
b[l-r+1000]++;
}
long long sum=0;
for(int i=0;i<=2000;i++){
sum+=a[i]*(a[i]-1)/2;
sum+=b[i]*(b[i]-1)/2;
}
cout<