Submission #420412

#TimeUsernameProblemLanguageResultExecution timeMemory
420412PyqeAutobahn (COI21_autobahn)C++14
100 / 100
112 ms15996 KiB
#include <bits/stdc++.h> using namespace std; #define mp make_pair #define fr first #define sc second const long long inf=1e18; long long n,m,d,ps[2][400069]; pair<long long,pair<long long,long long>> a[400069]; int main() { long long i,ii,k,l,w,c[2]={0,0},e,p,z=0; scanf("%lld%lld%lld",&n,&m,&d); for(i=1;i<=n;i++) { scanf("%lld%lld%lld",&k,&w,&l); a[i*4-3]={k-1,{0,1}}; a[i*4-2]={k+w-1,{1,1}}; a[i*4-1]={l,{0,-1}}; a[i*4]={l,{1,-1}}; } sort(a+1,a+n*4+1); for(i=1;i<=n*4;i++) { k=a[i].fr; e=a[i].sc.fr; w=a[i].sc.sc; for(ii=0;ii<2;ii++) { ps[ii][i]=ps[ii][i-1]; } c[e]+=w; if(!e) { if(c[0]>=m&&c[0]-w<m) { ps[0][i]-=c[1]; ps[1][i]-=k*c[1]; } else if(c[0]<m&&c[0]-w>=m) { ps[0][i]+=c[1]; ps[1][i]+=k*c[1]; } } else if(c[0]>=m) { ps[0][i]-=w; ps[1][i]-=k*w; } p=upper_bound(a+1,a+n*4+1,mp(k-d,mp(inf,inf)))-a-1; z=max(z,ps[1][i]+k*-ps[0][i]-(ps[1][p]+(k-d)*-ps[0][p])); } printf("%lld\n",z); }

Compilation message (stderr)

autobahn.cpp: In function 'int main()':
autobahn.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |  scanf("%lld%lld%lld",&n,&m,&d);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
autobahn.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |   scanf("%lld%lld%lld",&k,&w,&l);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...