답안 #908784

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
908784 2024-01-16T20:49:19 Z AlphaMale06 Semiexpress (JOI17_semiexpress) C++14
100 / 100
11 ms 4824 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define int long long


void solve(){
	int n, m, k, a, b, c, t;
	cin >> n >> m >> k >> a >> b >> c >> t;
	vector<int> A(m);
	for(int i=0; i< m; i++)cin >> A[i];
	vector<int> gain;
	int cnt=k-m;
	int ans=0;
	for(int i=0; i< m-1; i++){
		int price=(A[i]-1)*b, st=A[i], nxt=A[i+1];
		if(price>t)break;
		int reach=st+(t-price)/a;
		if(reach>=nxt-1){
			ans+=nxt-st;
			continue;
		}
		else ans+=reach-st+1;
		price+=(reach-st+1)*c;
		st=reach+1;
		for(int j=0; j< cnt; j++){
			if(price>t)break;
			reach=st+(t-price)/a;
			if(reach>=nxt-1){
				gain.pb(nxt-st);
				break;
			}
			else{
				gain.pb(reach-st+1);
			}
			price+=(reach-st+1)*c;
			st=reach+1;
		}
	}	
	sort(all(gain));
	reverse(all(gain));
	for(int i=0; i< min(cnt, (int)gain.size()); i++){
		ans+=max(0ll, gain[i]);
	}
	if((n-1)*b<=t)ans++;
	cout << max(0ll,ans-1) << '\n';
}


signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	solve();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 408 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 408 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 444 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 1 ms 456 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 408 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 444 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 1 ms 456 KB Output is correct
19 Correct 1 ms 344 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 1 ms 728 KB Output is correct
23 Correct 11 ms 4824 KB Output is correct
24 Correct 1 ms 348 KB Output is correct
25 Correct 1 ms 756 KB Output is correct
26 Correct 1 ms 472 KB Output is correct
27 Correct 1 ms 348 KB Output is correct
28 Correct 1 ms 348 KB Output is correct
29 Correct 8 ms 4820 KB Output is correct
30 Correct 5 ms 2584 KB Output is correct