Submission #1179921

#TimeUsernameProblemLanguageResultExecution timeMemory
1179921user736482Semiexpress (JOI17_semiexpress)C++20
100 / 100
0 ms328 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define INFL 1000000000000000099LL ll n,q,s,t,a,b,c,d,ans,k,m,K; vector<ll>szy; priority_queue<pair<pair<ll,ll>,pair<ll,ll>>>pq;//ile dodaje, koniec,koniec calosci int main() { ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>m>>k>>a>>b>>c>>t; K=k; for(ll i=0;i<m;i++){ cin>>d; d--; szy.pb(d); if(i){ ll kn=(t-szy[i-1]*b)/a + szy[i-1]; //cout<<kn<<"\n\n"; if(t-szy[i-1]*b<0)k--; else if(kn>=szy[i]){ k--; ans+=szy[i]-szy[i-1]; } else{ k--; // cout<<"xd"; ans+=kn-szy[i-1]+1; ll pom=(t-szy[i-1]*b-(kn-szy[i-1]+1)*c)/a + 1; // cout<<szy[i]-kn<<" "<<min(pom,szy[i]-kn)<<"\n\n"; if((t-szy[i-1]*b-(kn-szy[i-1]+1)*c)>=0) pq.push({{min(pom,szy[i]-kn-1),min(kn+pom,szy[i]-1)},{szy[i],szy[i-1]}}); } } } // cout<<ans; k--; while(pq.size() && k){ k--; auto pom=pq.top(); pq.pop(); ans+=pom.ff.ff; // cout<<pom.ff.ff<<" "<<pom.ff.ss<<" "<<pom.ss.ff<<" "<<pom.ss.ss<<"\n"; if(pom.ff.ss==pom.ss.ff)continue; ll kn=pom.ff.ss; ll pomm=(t-pom.ss.ss*b-(kn-pom.ss.ss+1)*c)/a + 1; if((t-pom.ss.ss*b-(kn-pom.ss.ss+1)*c)>=0) pq.push({{min(pomm,pom.ss.ff-kn-1),min(kn+pomm,pom.ss.ff-1)},pom.ss}); } /// cout<<ans; if((n-1)*b>t)ans--; cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...