aydarbiktimirov

#38

Oct 19th, 2012
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <fstream>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     int n;
  10.     ifstream in("input.txt");
  11.     ofstream out("output.txt");
  12.     in >> n;
  13.     vector<vector<pair<int, int> > > d(n, vector<pair<int, int> >(n, pair<int, int>(0, 0)));
  14.     vector<int> a(n);
  15.     for (size_t i = 0; i < n; in >> a[i], d[i][i].first = a[i++]);
  16.     for (int j = 1; j < n; ++j)
  17.     {
  18.         for (int i = j - 1; i >= 0; --i)
  19.         {
  20.             pair<int, int> v1(a[j] + d[i][j - 1].second, d[i][j - 1].first), v2(a[i] + d[i + 1][j].second, d[i + 1][j].first);
  21.             d[i][j] = max(v1, v2);
  22.         }
  23.     }
  24.     if (d[0][n - 1].first == d[0][n - 1].second)
  25.     {
  26.         out << '0' << endl;
  27.     } else {
  28.         out << (d[0][n - 1].first > d[0][n - 1].second ? '1' : '2') << endl;
  29.     }
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment