Submission #580429

#TimeUsernameProblemLanguageResultExecution timeMemory
580429yutabiDivide and conquer (IZhO14_divide)C++14
17 / 100
1 ms212 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back typedef long long ll; typedef pair <ll,ll> ii; ll l; ll r; ll m; int n; vector <pair <ll,ii> > s; int main() { scanf(" %d",&n); s=vector <pair <ll,ii> > (n); for(int i=0;i<n;i++) { ll a,b,c; scanf(" %lld %lld %lld",&a,&b,&c); s[i]=make_pair(a,ii(b,c)); } l=0; r=1000000000000000007; m=(l+r+1)/2; while(l!=r) { bool flag=0; ll ptr1=0,ptr2=1; ll cost=0; ll gold=s[0].second.first; ll electric=s[0].second.second; while(1) { if(gold<m) { if(ptr2<n) { cost+=s[ptr2].first-s[ptr2-1].first; gold+=s[ptr2].second.first; electric+=s[ptr2].second.second; ptr2++; } else { break; } } else { if(electric>=cost) { flag=1; break; } cost+=s[ptr1].first-s[ptr1+1].first; gold-=s[ptr1].second.first; electric-=s[ptr1].second.second; ptr1++; } } if(flag) { l=m; } else { r=m-1; } m=(l+r+1)/2; } printf("%lld\n",m); }

Compilation message (stderr)

divide.cpp: In function 'int main()':
divide.cpp:23:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |     scanf(" %d",&n);
      |     ~~~~~^~~~~~~~~~
divide.cpp:32:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         scanf(" %lld %lld %lld",&a,&b,&c);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...