/*
* poj2785.cpp
*
* Created on: 2010-8-14
* Author: friendy
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int a[16000001],b[16000001];
int num[4001][4],cnt,tt;
void search(int x){
int low=0,high=tt-1;
int mid;
while(low<high){
mid=(low+high)>>1;
if(b[mid]<x)
low=mid+1;
else
high=mid;
}
while(b[low]==x&&low<tt){
cnt++;
low++;
}
}
int main(){
int i,n,j;
while(scanf("%d",&n)!=EOF){
cnt=0;
for(i=0;i<n;i++){
scanf("%d%d%d%d",&num[i][0],&num[i][1],&num[i][2],&num[i][3]);
}
tt=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
a[tt++]=num[i][0]+num[j][1];
}
}
tt=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
b[tt++]=num[i][2]+num[j][3];
}
}
sort(b,b+tt);
for(i=0;i<tt;i++){
search(-a[i]);
}
printf("%d\n",cnt);
}
}
2785poj
最新推荐文章于 2021-03-01 21:52:31 发布