제출 #1179877

#제출 시각아이디문제언어결과실행 시간메모리
1179877user736482Semiexpress (JOI17_semiexpress)C++20
48 / 100
0 ms328 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ll __int128 #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define INFL 1000000000000000099LL ll q,s,ans,K; long long a,b,c,n,m,k,t,d; vector<ll>szy,zna,dod; void calculate(ll ile, ll lim){ if(lim>=0) { ll ak=lim/a; ak++; if(ak>=ile) ans+=ile; else{ ans+=ak; } ile-=ak; lim-=ak*c; // cout<<ak<<" "; } k--; while(lim>=0 && ile>0){ ll ak=lim/a; ak++; //cout<<ak<<" "; if(ak>=ile) dod.pb(ile); else{ zna.pb(ak); } ile-=ak; lim-=ak*c; if(zna.size()>=K+7)return; } } 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) calculate(szy[i]-szy[i-1],t-b*szy[i-1]); } for(ll i : dod)zna.pb(i); sort(zna.begin(),zna.end()); k--; while(zna.size() && k){ k--; ans+=zna.back(); zna.pop_back(); } if((n-1)*b>t)ans--; cout<<(long long)ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...