fork download
  1. #include<bits/stdc++.h>
  2. int main()
  3. {
  4. long long int t,n,x,k,i,j,counter;
  5. scanf("%lld",&t);
  6. L:
  7. while(t--)
  8. {
  9. counter=0;
  10. long long int sum=0,c=0,d=0,e=0,s;
  11. scanf("%lld %lld",&n,&x);
  12. long long int a[n],b[n],m[n];
  13. for(i=0;i<n;i++)
  14. {
  15. scanf("%lld",&a[i]);
  16. sum=sum+a[i];
  17. }
  18. if(sum==0)
  19. {
  20. printf("yes\n");
  21. goto L;
  22. }
  23. k=sum/x;
  24. if(sum%x!=0 || (k==0 && sum!=0))
  25. {
  26. printf("no\n");
  27. goto L;
  28. }
  29. for(i=0;i<n;i++)
  30. {
  31. if(a[i]>k)
  32. {
  33. printf("no\n");
  34. goto L;
  35. }
  36. }
  37. for(i=0;i<n;i++)
  38. {
  39. if(a[i]==k)
  40. {
  41. a[i]=0;
  42. counter++;
  43. }
  44. }
  45. if(counter==x)
  46. {
  47. printf("yes\n");
  48. goto L;
  49. }
  50. for(i=0;i<n;i++)
  51. {
  52. if(a[i]!=0)
  53. {
  54. for(j=i+1;j<n;j++)
  55. {
  56. if(a[i]+a[j]==k)
  57. {
  58. a[i]=0;
  59. a[j]=0;
  60. counter++;
  61. }
  62.  
  63. }
  64. }
  65. }
  66. j=0;
  67. for(i=0;i<n;i++)
  68. if(a[i]!=0)
  69. {
  70. b[j]=a[i];
  71. j++;
  72. }
  73. int y=j;
  74. for(i=0;i<y;i++)
  75. {
  76.  
  77. for(j=i+1;j<y;j++)
  78. {
  79. if(b[j]>b[i])
  80. {
  81. long long int temp=b[j];
  82. b[j]=b[i];
  83. b[i]=temp;
  84. }
  85. }
  86. }
  87. for(i=0;i<y;i++)
  88. {
  89. long long int v,v1;
  90. if(b[i]==0)
  91. continue;
  92. for(j=i+1;j<y;j++)
  93. {
  94. int p=0;
  95. if(b[j]==0)
  96. continue;
  97. v=b[i]+b[j];
  98. if(v>k)
  99. continue;
  100. int u=0;
  101. for(int r=j+1;r<y;r++)
  102. {
  103. v=v+b[r];
  104. if(v>k)
  105. {
  106. v=v-b[r];
  107. continue;
  108. }
  109.  
  110. if(v==k)
  111. {
  112. counter++;
  113.  
  114. b[i]=0;
  115. b[j]=0;
  116. b[r]=0;
  117. p++;
  118. break;
  119. }
  120. }
  121. if(p==1)
  122. {
  123.  
  124. break;
  125.  
  126. }
  127.  
  128. else
  129. continue;
  130. }
  131.  
  132. }
  133.  
  134. if(counter==x)
  135. printf("yes\n");
  136. else
  137. printf("no\n");
  138.  
  139.  
  140.  
  141. }
  142. return 0;
  143.  
  144. }
Success #stdin #stdout 0s 3300KB
stdin
10
7 5
7 0 4 2 6 3 4
10 1
9 3 8 6 7 5 0 9 2 0
1 4
0
8 4
3 7 0 6 1 8 9 8
6 5
1 8 1 6 1 4
4 7
3 1 3 2
5 7
5 1 6 2 6
6 8
7 1 9 0 0 5
5 4
4 4 1 8 3
5 8
6 1 2 0 2
stdout
no
yes
yes
no
no
no
no
no
no
no