Submission #210241

#TimeUsernameProblemLanguageResultExecution timeMemory
210241super_j6Bigger segments (IZhO19_segments)C++14
0 / 100
5 ms376 KiB
#include <iostream> #include <cstdio> #include <algorithm> #include <set> using namespace std; #define endl '\n' #define pi pair<long long, long long> #define f first #define s second const int maxn = 500001; int n; int a[maxn], dp[maxn]; set<pi> s; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin >> n; s.insert({0, 0}); for(int i = 1; i <= n; i++){ cin >> a[i]; a[i] = -a[i] + a[i - 1]; pi p = *s.lower_bound({a[i], 0}); dp[i] = dp[p.s] + 1; p = {2 * a[i] - a[p.s], i}; while((*s.begin()).f < p.f) s.erase(s.begin()); s.insert(p); } cout << dp[(*s.begin()).s] << endl; 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...