fork download
  1. //laptrinhsgu.wordpress.com
  2.  
  3. #include <bits/stdc++.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int n,t=0,f[10001],d[10001];
  10. cin>>n;
  11. int a[n+1];
  12. for (int i=1;i<=n;i++)
  13. {
  14. cin>>a[i];
  15. t=t+a[i];
  16. }
  17. t=t/2;
  18. //QHD
  19. for (int i=1;i<=t;i++)
  20. {
  21. f[i]=INT_MAX;
  22. for (int j=1;j<=n;j++)
  23. if (i>=a[j] && j>f[i-a[j]])
  24. {
  25. f[i]=j;
  26. break;
  27. }
  28. }
  29.  
  30. //Truyvet
  31. while (f[t] > n) t--;
  32. while (t > 0)
  33. {
  34. d[f[t]]=1;
  35. t=t-a[f[t]];
  36. }
  37. for (int i=1;i<=n;i++)
  38. if (d[i]==1) cout<<a[i]<<" ";
  39. cout<<endl;
  40. for (int i=1;i<=n;i++)
  41. if (d[i]!=1) cout<<a[i]<<" ";
  42. cout<<endl;
  43. }
Success #stdin #stdout 0.01s 5272KB
stdin
4
5 5 3 4
stdout
5 3 
5 4