POJ2785(upper_bound)

复制代码
#include"cstdio"
#include"algorithm"
using namespace std;
const int MAXN=4005;
int A[MAXN],B[MAXN],C[MAXN],D[MAXN];
int CD[MAXN*MAXN];
int n;
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
            scanf("%d %d %d %d",&A[i],&B[i],&C[i],&D[i]);
        
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++) CD[i*n+j]=C[i]+D[j];
        sort(CD,CD+n*n);
        
        int res=0;
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                res+=upper_bound(CD,CD+n*n,-(A[i]+B[j]))-lower_bound(CD,CD+n*n,-(A[i]+B[j]));
        printf("%d\n",res);
        
            
    }
    return 0;
}
复制代码

 

posted on   vCoders  阅读(157)  评论(0编辑  收藏  举报

努力加载评论中...

导航

点击右上角即可分享
微信分享提示