CodeFoeces-621B

题目

原题链接: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<

你可能感兴趣的:(CodeFoeces-621B)