aydarbiktimirov icon

#38

aydarbiktimirov | PRO | 10/19/12 01:01:56 PM UTC | 0 ⭐ | 246 👁️ | Never ⏰ | []
C++ |

830 B

|

None

|

0 👍

/

0 👎

#include <fstream>
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    int n;
    ifstream in("input.txt");
    ofstream out("output.txt");
    in >> n;
    vector<vector<pair<int, int> > > d(n, vector<pair<int, int> >(n, pair<int, int>(0, 0)));
    vector<int> a(n);
    for (size_t i = 0; i < n; in >> a[i], d[i][i].first = a[i++]);
    for (int j = 1; j < n; ++j)
    {
        for (int i = j - 1; i >= 0; --i)
        {
            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);
            d[i][j] = max(v1, v2);
        }
    }
    if (d[0][n - 1].first == d[0][n - 1].second)
    {
        out << '0' << endl;
    } else {
        out << (d[0][n - 1].first > d[0][n - 1].second ? '1' : '2') << endl;
    }
    return 0;
}

Comments