Submission #1187413

#TimeUsernameProblemLanguageResultExecution timeMemory
1187413maxFedorchukSemiexpress (JOI17_semiexpress)C++20
100 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; const long long MX=3e5+10; long long s[MX],vc[MX]; long long n,m,k,a,b,c,t; long long fget(long long i) { long long o=t-(s[i]-1)*b-c*(vc[i]-s[i]); if(o<0) { return vc[i]; } return min(vc[i]+o/a+1,s[i+1]); } int main() { cin.tie(0); ios_base::sync_with_stdio(0); cin>>n>>m>>k>>a>>b>>c>>t; for(long long i=1;i<=m;i++) { cin>>s[i]; } long long ans=((n-1)*b<=t); for(long long i=1;i<m;i++) { if((s[i]-1)*b<=t) { vc[i]=s[i]; ans+=fget(i)-vc[i]; vc[i]=fget(i); } else { vc[i]=0; } } priority_queue < pair < long long , long long > > q; for(long long i=1;i<m;i++) { if(vc[i]) { q.push({fget(i)-vc[i],i}); } } for(long long i=0;i<k-m;i++) { long long in=q.top().second; q.pop(); ans+=fget(in)-vc[in]; vc[in]=fget(in); q.push({fget(in)-vc[in],in}); } cout<<ans-1<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...