Submission #1180294

#TimeUsernameProblemLanguageResultExecution timeMemory
1180294pythontestSemiexpress (JOI17_semiexpress)C++20
0 / 100
0 ms328 KiB
#include <iostream> #include <vector> #include <queue> struct pq{ long long ile; int indb; long long ileskokow; bool operator<(const pq& ele) const{ return this->ile<ele.ile; } }; using namespace std; int main() { long long n,m,k,a,b,c,t; scanf("%lld %lld %lld %lld %lld %lld %lld",&n,&m,&k,&a,&b,&c,&t); vector<long long> stacje; for(int i=0;i<m;i++){ long long v; scanf("%lld",&v); stacje.push_back(v); } priority_queue<pq> kolejka; long long res=0; for(int i=0;i<m-1;i++){ long long kosztnow = b*(stacje[i]-1); if(kosztnow<=t){ long long doilu = min((t-kosztnow)/a,stacje[i+1]-stacje[i]-1); res+=doilu; if(i!=0) res++; if(t-c*(doilu+1)-kosztnow>=0){ long long doilupoprzejezdzie = min((t-c*(doilu+1)-kosztnow)/a+1, max(stacje[i+1]-stacje[i]-1-doilu,0ll)); kolejka.push({doilupoprzejezdzie,i,doilu}); } } } for(int i=0;i<k-m;i++){ if(kolejka.empty()) break; auto top = kolejka.top(); kolejka.pop(); res+=top.ile; top.ileskokow+=top.ile; if(t-b*(stacje[top.indb]-1)-c*(top.ileskokow+1) >= 0){ long long doilup = min((t-b*(stacje[top.indb]-1)-c*(top.ileskokow+1))/a+1, max(stacje[i+1]-stacje[i]-1-top.ileskokow,0ll)); kolejka.push({doilup,top.indb,top.ileskokow}); } } if(b*(stacje[m-1]-1)<=t) res++; printf("%lld",res); return 0; }

Compilation message (stderr)

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