Advertisement
a53

bete2

a53
Jul 22nd, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstring>
  3. using namespace std;
  4. int q,n,x,t,s,c[101],dp[1000001];
  5.  
  6. int main()
  7. {
  8. ifstream f("bete.in");
  9. f>>q;
  10. ofstream g("bete.out");
  11. while(q--)
  12. {
  13. s=0;
  14. f>>n;
  15. memset(c,0,sizeof(c));
  16. while(n--)
  17. f>>x,++c[x],s+=x;
  18. t=s/2;
  19. memset(dp,0,(t+1)*4);
  20. dp[0]=1;
  21. for(int x=1;x<101;++x)
  22. {
  23. for(;c[x];c[x]/=2)
  24. {
  25. int y=(c[x]+1)/2*x;
  26. for(int i=t-y;i>=0;--i)
  27. dp[i+y]|=dp[i];
  28. }
  29. }
  30. while(!dp[t])
  31. --t;
  32. g<<s-2*t<<'\n';
  33. }
  34. f.close();
  35. g.close();
  36. return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement