Submission #2853260


Source Code Expand

#include <iostream>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <vector>
#include <utility>
#include <numeric>
#include <string>
#include <set>
#include <map>
#include <tuple>
#include <queue>
#include <stack>
#include <deque>
#define rep(i, a, n) for(int (i) = (int)(a);(i) < (int)(n);++(i))
#define repe(i, a, n) for(int (i) = (int)(a);(i) <= (int)(n);++(i))
#define repif(i, a, x) for(int (i) = (int)(a);(x);++(i))
#define repr(i, a, n) for(int (i) = (int)(a);(i) > (int)(n);--(i))
#define reper(i, a, n) for(int (i) = (int)(a);(i) >= (int)(n);--(i))
#define SIZE(x) ((int)(x).size())
#define ALL(x) (x).begin(), (x).end()
#define RNG(x, n) &((x)[0]), &((x)[n])
#define BRK(x) { (x); break; }
#define ADD(a, b) ((((a)%MOD)+((b)%MOD))%MOD)
#define MUL(a, b) ((((a)%MOD)*((b)%MOD))%MOD)
#define FLOOR(x) ((int)floor(((double)x)))
#define CEIL(x) ((int)ceil(((double)x)))
#define YES cout << "YES" << endl
#define NO cout << "NO" << endl
#define Yes cout << "Yes" << endl
#define No cout << "No" << endl
#define yes cout << "yes" << endl;
#define no cout << "no" << endl;
#define fcout cout << fixed << setprecision(10)
#define pb push_back
#define pf push_front
#define mt make_tuple
#define fi first
#define se second
#define EPS (1e-20)
#define INF 2147483647
#define MOD 1000000007
using llint = long long;
using VI = std::vector<int>;
using PII = std::pair<int, int>;
using SI = std::set<int>;
using MII = std::map<int, int>;
using TIII = std::tuple<int, int, int>;
using VLL = std::vector<llint>;
using MCI = std::map<char, int>;
using namespace std;


int N;
int a[60];
int T[60][60];
int A[60][60];


void makeTA(){
	rep(i, 0, N){
		rep(j, 0, N){
			if(i == j) T[i][j] = A[i][j] = -INF;
			else if(i < j){
				repe(k, i, j){
					if((k-i)%2 == 0) T[i][j] += a[k];
					else A[i][j] += a[k];
				}
			}
			else {
				repe(k, j, i){
					if((k-j)%2 == 0) T[i][j] += a[k];
					else A[i][j] += a[k];
				}
			}
		}
	}
}


int solve(){
	int ans = -INF;
	rep(i, 0, N)
		ans = max(ans, T[i][max_element(RNG(A[i], N))-&A[i][0]]);
	return ans;
}

signed main(){
	cin >> N;
	rep(i, 0, N) cin >> a[i];

	makeTA();

	cout << solve() << endl;

	return 0;
}

Submission Info

Submission Time
Task C - 数列ゲーム
User AqFv
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2270 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 23
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt
All sample-01.txt, sample-02.txt, sample-03.txt, test-01.txt, test-02.txt, test-03.txt, test-04.txt, test-05.txt, test-06.txt, test-07.txt, test-08.txt, test-09.txt, test-10.txt, test-11.txt, test-12.txt, test-13.txt, test-14.txt, test-15.txt, test-16.txt, test-17.txt, test-18.txt, test-19.txt, test-20.txt
Case Name Status Exec Time Memory
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB
test-01.txt AC 1 ms 256 KB
test-02.txt AC 1 ms 256 KB
test-03.txt AC 1 ms 256 KB
test-04.txt AC 1 ms 256 KB
test-05.txt AC 1 ms 256 KB
test-06.txt AC 1 ms 256 KB
test-07.txt AC 1 ms 256 KB
test-08.txt AC 1 ms 256 KB
test-09.txt AC 1 ms 256 KB
test-10.txt AC 1 ms 256 KB
test-11.txt AC 1 ms 256 KB
test-12.txt AC 1 ms 256 KB
test-13.txt AC 1 ms 256 KB
test-14.txt AC 1 ms 256 KB
test-15.txt AC 1 ms 256 KB
test-16.txt AC 1 ms 256 KB
test-17.txt AC 1 ms 256 KB
test-18.txt AC 1 ms 256 KB
test-19.txt AC 1 ms 256 KB
test-20.txt AC 1 ms 256 KB