#include using namespace std; using ll = long long; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b A){ ll L = A.size(); FOR(i, 0, L){ if(i) cout << ' '; cout << A[i]; } cout << endl; } struct AccSum{ vector Ac; ll L; AccSum(){} // A : 1 2 3 4 // Ac: 0 1 3 6 10 // [1, 2] == 5, それはAc[3]-Ac[1] void initialize(vector &A){ L = A.size(); Ac.resize(L+1); FOR(i, 0, L){ Ac[i+1] = Ac[i] + A[i]; } } // sum of [a, b] ll sum(ll a, ll b){ if(a<0) return -1; if(b>L-1) return -1; return Ac[b+1] - Ac[a]; } }; ll N; vector A; AccSum accSum; // [L, R)内でmeanで切ったときのindexを返す ll my_binary_search(ll L, ll R, double mean){ if(A[L]>=mean) return L; if(A[R-1]> N; A.resize(N); FOR(i, 0, N){ cin >> A.at(i); } accSum.initialize(A); // pn(accSum.sum(1, 4)); // return 0; if(can_win(0, N)){ p("First"); }else{ p("Second"); } return 0; }