uva1152

나 는 원 소 는 중복 할 수 있다 는 것 을 발견 했다. 즉, 여러 가지 조합 이 있 을 수 있다 는 것 이다.
// UVa1152 4 Values Whose Sum is Zero

// Rujia Liu

#include

#include

using namespace std;



const int maxn = 4000 + 5;

int n, c, A[maxn], B[maxn], C[maxn], D[maxn], sums[maxn*maxn];



int main() {

  int T;

  scanf("%d", &T);

  while(T--) {

    scanf("%d", &n);

    for(int i = 0; i < n; i++)

      scanf("%d%d%d%d", &A[i], &B[i], &C[i], &D[i]);

    c = 0;

    for(int i = 0; i < n; i++)

      for(int j = 0; j < n; j++)

        sums[c++] = A[i] + B[j];

    sort(sums, sums+c);

    long long cnt = 0;

    for(int i = 0; i < n; i++)

      for(int j = 0; j < n; j++)

        cnt += upper_bound(sums, sums+c, -C[i]-D[j]) - lower_bound(sums, sums+c, -C[i]-D[j]);

    printf("%lld
", cnt); if(T) printf("
"); } return 0; }

좋은 웹페이지 즐겨찾기