Submission #101129

#TimeUsernameProblemLanguageResultExecution timeMemory
101129luciocfHacker (BOI15_hac)C++14
60 / 100
133 ms6392 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 5e5+10; int n; int v[maxn], soma[maxn]; int solve(void) { int ans = 0, sz = (n+1)/2; for (int i = 0; i < n; i++) { int aux = 1e9+10; for (int qtd = 1, r = i; qtd <= sz; qtd++, r = (r+1)%n) { int resto = sz-qtd; int l = (i-resto+n)%n; int s1, s2; if (r >= 0 && r < i) s2 = (soma[n-1]-soma[i])+soma[r]; else s2 = soma[r]-soma[i]; if (l < n && l > i) s1 = soma[i]+(soma[n-1]-soma[l-1]); else s1 = (l ? soma[i]-soma[l-1] : soma[i]); aux = min(aux, s1+s2); } ans = max(ans, aux); if (n > 5000) return ans; } return ans; } int main(void) { cin >> n; for (int i = 0; i < n; i++) { cin >> v[i]; if (i > 0) soma[i] = soma[i-1] + v[i]; else soma[i] = v[i]; } cout << solve() << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...