Submission #1015608

#TimeUsernameProblemLanguageResultExecution timeMemory
1015608elitewantsyouBigger segments (IZhO19_segments)C++14
0 / 100
1 ms2396 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> #define fi first #define se second const int N = 500500; const int mod = 998244353; using namespace std; const long long inf = 1e18; int n; int a[N]; long long s[N]; long long d[N]; long long f[N]; int main() { ios_base::sync_with_stdio(0); #ifdef zxc freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; s[i] = s[i - 1] + a[i]; } for (int i = 1; i <= n; i++) { int l = 0, r = i - 1; while (l < r) { int m = (l + r) / 2; if (s[i] - s[m + 1] >= f[m + 1]) { l = m + 1; } else { r = m; } } d[i] = d[l] + 1; f[i] = s[i] - s[l]; if (f[i - 1] + a[i] < f[i]) { f[i] = f[i - 1] + a[i]; d[i] = d[i - 1]; } // cout << d[i] << " " << f[i] << "\n"; } cout << d[n] << "\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...
#Verdict Execution timeMemoryGrader output
Fetching results...