Submission #535396

#TimeUsernameProblemLanguageResultExecution timeMemory
535396amunduzbaevSemiexpress (JOI17_semiexpress)C++17
100 / 100
67 ms33316 KiB
#include "bits/stdc++.h"
using namespace std;
 
#define ar array
#define int long long

const int N = 3005;
int p[N];

signed main(){
	ios::sync_with_stdio(0); cin.tie(0);
	
	int n, m, k; cin>>n>>m>>k;
	int a, b, c; cin>>a>>b>>c;
	
	int T; cin>>T;
	for(int i=0;i<m;i++) cin>>p[i];
	vector<int> cc; 
	int res = -1;
	for(int i=0;i+1<m;i++){
		int t = (p[i] - 1) * b;
		if(t > T) continue;
		int P = min(p[i+1], p[i] + (T - t) / a + 1);
		//~ cout<<p[i]<<" "<<P - 1<<" must\n";
		res += (P - p[i]);
		for(int j=0;j<k && P < p[i+1];j++){
			int t_ = t + (P - p[i]) * c;
			if(t_ > T) break;
			int P_ = min(p[i+1], P + (T - t_) / a + 1);
			//~ cout<<P<<" "<<P_ - 1<<"\n";
			cc.push_back(P_ - P);
			P = P_;
		}
	} if((n - 1) * b <= T) res++;
	
	sort(cc.rbegin(), cc.rend());
	for(int j=0;j<min((int)cc.size(), k - m);j++) res += cc[j];
	
	cout<<res<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...