Submission #344594

#TimeUsernameProblemLanguageResultExecution timeMemory
344594mansurDivide and conquer (IZhO14_divide)C++14
0 / 100
1 ms364 KiB
#include<bits/stdc++.h> using namespace std; #define all(a) a.begin(),a.end() #define ll long long #define pb push_back #define nl '\n' #define popb pop_back() #define sz size() #define ld long double #define ull unsigned long long #define F first #define S second #define fix fixed<<setprecision #define pii pair<int,int> #define E exit (0) #define int1 long long const int inf=1e9; int n,x[100001],g[100001],d[100001]; pair<pii,pii> dq(int l,int r,int z=0) { if (l==r) { return {{g[l],d[l]},{x[l],x[l]}}; } int mid=(l+r)/2; pair<pii,pii> a=dq(l,mid,1),b=dq(mid+1,r,2); if (b.S.S-a.S.F<=a.F.S+b.F.S) { return {{a.F.F+b.F.F,a.F.S+b.F.S},{a.S.F,b.S.S}}; } if (z==2) { return a; } return b; } int main() { //freopen("planting.in","r",stdin); //freopen("planting.out","w",stdout); ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n; for (int i=1;i<=n;i++) { cin>>x[i]>>g[i]>>d[i]; } cout<<dq(1,n).F.F; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...