2016年10月16日 星期日

(POJ) 2785 -- 4 Values whose Sum is 0

http://poj.org/problem?id=2785

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;

const int MAX_N = 4006;

int a[MAX_N];
int b[MAX_N];
int c[MAX_N];
int d[MAX_N];

vector<int> v;

int main() {
    int n;
    while (scanf("%d",&n) != EOF) {
        for (int x=1;n>=x;x++) {
            scanf("%d %d %d %d",&a[x],&b[x],&c[x],&d[x]);
        }
        for (int i=1;n>=i;i++) {
            for (int j=1;n>=j;j++) {
                v.push_back(a[i]+b[j]);
            }
        }
        sort(v.begin(),v.end());
        long long ans=0;
        for (int i=1;n>=i;i++) {
            for (int j=1;n>=j;j++) {
                int tmp=c[i]+d[j];
                int tmp2=c[i]+d[j];
                ans += upper_bound(v.begin(),v.end(),-tmp) - lower_bound(v.begin(),v.end(),-tmp2);
            }
        }
        printf("%lld\n",ans);
    }
}

沒有留言:

張貼留言