Advertisement
Tranvick

task

Jun 4th, 2014
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 555;
  6.  
  7. int f[N][N][N], n, a[N];
  8.  
  9. int main() {
  10.     int m = 0;
  11.     cin >> n;
  12.     for (int i = 1; i <= n; ++i) {
  13.         cin >> a[i];
  14.         m += a[i];
  15.     }
  16.     f[0][0][0] = 1;
  17.     for (int i = 1; i <= n; ++i) {
  18.         for (int x = 0; x <= m; ++x) {
  19.             for (int y = 0; y <= m; ++y) {
  20.                 f[i][x][y] = f[i - 1][x][y];
  21.                 if (x >= a[i] && f[i - 1][x - a[i]][y]) {
  22.                     f[i][x][y] = 1;
  23.                 }
  24.                 if (y >= a[i] && f[i - 1][x][y - a[i]]) {
  25.                     f[i][x][y] = 1;
  26.                 }
  27.             }
  28.         }
  29.     }
  30.     int answer = 0;
  31.     for (int i = 1; i <= m; ++i) {
  32.         if (f[n][i][i]) {
  33.             answer = i;
  34.         }
  35.     }
  36.     cout << answer << endl;
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement