despores

b

Apr 10th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <set>
  5. #include <map>
  6. #include <bitset>
  7. #include <algorithm>
  8. #include <iomanip>
  9. #include <cmath>
  10. #include <unordered_set>
  11. #include <unordered_map>
  12. #include <queue>
  13. #include <deque>
  14. #include <stack>
  15. #include <cstring>
  16. #include <numeric>
  17.  
  18. using namespace std;
  19.  
  20. typedef long long ll;
  21. typedef long double ld;
  22. typedef pair<int,int> pii;
  23. typedef pair<ll,ll> pll;
  24. #define FOR(i, k, l) for(int i = k; i < l; i++)
  25. #define DFOR(i, k, l) for(int i = k - 1; i >= l; i--)
  26. #define FA(i, k) for(int i = 0; i < int(k.size()); i++)
  27. #define DFA(i, k) for(int i = int(k.size()) - 1; i > -1; i--)
  28. #define ASKS(i) for(cin >> (i); (i)--;)
  29.  
  30.  
  31. #define MAXINT 2147483647
  32. #define endl '\n'
  33. #define all(x) x.begin(), x.end()
  34. #define rall(x) x.rbegin(), x.rend()
  35. #define fi first
  36. #define se second
  37.  
  38. bool dp[110][100011];
  39. int a[110];
  40.  
  41. int main() {
  42. ios::sync_with_stdio(0);
  43. cin.tie(0);
  44. cout.tie(0);
  45. int n;
  46. cin >> n;
  47. int sum = 0;
  48. FOR(i, 1, n+1) {
  49. cin >> a[i];
  50. sum+= a[i];
  51. }
  52. sort(a, a+n+1);
  53. FOR(i,0,n+1) dp[i][0] = 1;
  54. FOR(i, 1, n+1) {
  55. FOR(j, 1, sum+1) {
  56. if(j >= a[i])
  57. dp[i][j] |= dp[i-1][j-a[i]];
  58. else dp[i][j] |= dp[i-1][j];
  59. }
  60. }
  61. int ans = sum;
  62. FOR(i, 0, sum+1) {
  63. if(dp[n][i]) {
  64. if(max(i, sum - i) < ans)
  65. ans = max(i, sum - i);
  66. }
  67. }
  68.  
  69. cout << ans << endl;
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment