uva1152

我发现元素是可以重复的,也就是可以有多种组合。。。。。

// UVa1152 4 Values Whose Sum is Zero

// Rujia Liu

#include<cstdio>

#include<algorithm>

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\n", cnt);

    if(T) printf("\n");

  }

  return 0;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容