⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1099094_ac_6217ms_49012k.cpp

📁 北京大学ACM 2785 对初学者有很大帮助!
💻 CPP
字号:
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
int a[4001],b[4001],c[4001],d[4001],n1[16000001],n2[16000001];
int num,n;
int cnt;
int main()
{
    int i,j,p1,p2,c1,c2;
    scanf("%d",&n);
    for(i=0;i<n;i++)scanf("%d %d %d %d",&a[i],&b[i],&c[i],&d[i]);
    num=0;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            n1[num]=a[i]+b[j],n2[num]=c[i]+d[j],num++;
    sort(n1,n1+num);
    sort(n2,n2+num);
    p1=0;p2=num-1;cnt=0;
    while(p1<num&&p2>=0)
    {
        if(n1[p1]+n2[p2]==0)
        {
            c1=c2=1;
            while(p1+1<num&&n1[p1]==n1[p1+1])p1++,c1++;
            while(p2-1>=0&&n2[p2]==n2[p2-1])p2--,c2++;
            cnt+=c1*c2;
            p1++;p2--;
        }    
        else if(n1[p1]+n2[p2]>0)p2--;   
        else p1++; 
    }     
    printf("%d\n",cnt);
    return 0;
}    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -