Submission #1156290

#TimeUsernameProblemLanguageResultExecution timeMemory
1156290AI_2512Divide and conquer (IZhO14_divide)C++17
17 / 100
0 ms328 KiB
#include <bits/stdc++.h> #define int long long #define ss second #define ff first using namespace std; signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n;cin >> n; vector<pair<int,pair<int,int>>> a(n); for (int i = 0; i< n;i++) cin >> a[i].ff >> a[i].ss.ff >> a[i].ss.ss; int mx = 0; for (int i =0 ; i< n;i++){ mx = max(mx, a[i].ss.ff); } int l = 0, r = 0; int curg = 0, cure = 0; while (r < n){ curg+=a[r].ss.ff; cure+=a[r].ss.ss; if (cure < a[r].ff-a[l].ff){ mx = max(mx, curg-a[r].ss.ff); while (cure < a[r].ff-a[l].ff){ curg-=a[l].ss.ff; cure-=a[l].ss.ss; l++; } } else{ if (l != 0){ while (cure+a[l-1].ss.ss >= a[r].ff-a[l-1].ff){ curg+=a[l-1].ss.ff; cure+=a[l-1].ss.ss; l--; if (l == 0) break; } mx = max(mx, curg); } } r++; } mx = max(mx, curg); cout << mx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...