Submission #570046

#TimeUsernameProblemLanguageResultExecution timeMemory
570046jcelinCigle (COI21_cigle)C++14
100 / 100
248 ms67396 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned int ui; #define ii pair<int,int> #define pll pair<ll,ll> #define vi vector<int> #define vii vector<ii> #define vll vector<ll> #define vpll vector<pll> #define matrix vector<vi> #define matrixLL vector<vLL> #define vs vector<string> #define vui vector<ui> #define msi multiset<int> #define mss multiset<string> #define si set<int> #define ss set<string> #define PB push_back #define PF push_front #define PPB pop_back #define PPF pop_front #define X first #define Y second #define MP make_pair #define FOR(i, a, b) for (int i = int(a); i < int(b); i++) #define REP(i, n) FOR(i, 0, n) #define all(x) (x).begin(), (x).end() const int dx[] = {-1, 1, 0, 0}; const int dy[] = {0, 0, -1, 1}; const int dxx[] = {-1, 1, 0, 0, 1, 1, -1, -1}; const int dyy[] = {0, 0, -1, 1, -1, 1, -1, 1}; const string abc="abcdefghijklmnopqrstuvwxyz"; const string ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const ld pi = 3.14159265; const int mod = 1e9 + 7; const int MOD = 1e9 + 7; const int N = 5e3 + 7; const int inf = mod; const ll INF = 1e18; const ll zero = ll(0); const int logo = 20; const int off = 1 << logo; const int trsz = off << 1; int aa[N + 1], dp[N + 1][N + 1], dq[N + 1]; void solve(){ int n, ans; cin >> n; for(int i=1; i<=n; i++) cin >> aa[i], aa[i] += aa[i - 1]; for(int i=1; i<=n; i++) dp[0][i] = 0; for(int j=1; j<=n; j++){ for(int i=0; i<j; i++) dq[i] = dp[i][j]; for(int i=1; i<j; i++) dq[i] = max(dq[i], dq[i-1]); int x=0, c = 0; for(int i=j-1, k=j+1; k<=n; k++){ dp[j][k] = x; while(i >= 0 and aa[i] + aa[k] > aa[j] * 2) i--; if(i > 0 and aa[i] + aa[k] == aa[j] * 2) x = max(x, dq[i - 1] + (++c)); } } ans = 0; for(int i=0; i<n; i++) ans = max(ans, dp[i][n]); cout << ans << "\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t=1; //cin >> t; while(t--)solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...