Submission #671552

#TimeUsernameProblemLanguageResultExecution timeMemory
671552smartmonkyDivide and conquer (IZhO14_divide)C++14
17 / 100
1 ms340 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define int long long using namespace std; const int N = 500001; int f[N],s[N], pos[N]; int n; main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(int i = 1; i <= n; i++){ int a, b, c; cin >> a >>b >> c; pos[i] = a; f[i] = b + f[i - 1]; s[i] = c + s[i - 1]; } int ans = 0; for(int i = 1; i <= n; i++){ int l = i, r = n; while(l <= r){ int mid = (l + r) >> 1; if(s[mid] - s[i - 1] >= abs(pos[i] - pos[mid])){ ans = max(ans, f[mid] - f[i - 1]); l = mid + 1; }else r = mid - 1; } for(int mid = max(i, r - 10); mid <= min(n, r + 10); mid++) if(s[mid] - s[i - 1] >= abs(pos[i] - pos[mid])){ ans = max(ans, f[mid] - f[i - 1]); } } cout << ans; }

Compilation message (stderr)

divide.cpp:14:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   14 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...