Submission #367811

#TimeUsernameProblemLanguageResultExecution timeMemory
367811vaavenSemiexpress (JOI17_semiexpress)C++14
100 / 100
15 ms4580 KiB
#pragma GCC target("avx2") #pragma GCC optimize("O3") #include <iostream> #include <vector> #include <algorithm> #include <math.h> #include <set> #include <stack> #include <iomanip> #include <bitset> #include <map> #include <cassert> #include <array> #include <queue> #include <cstring> #include <random> #include <unordered_set> #include <unordered_map> #define pqueue priority_queue #define pb(x) push_back(x) #define endl '\n' #define all(x) x.begin(), x.end() #define int long long using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef vector<int> vi; typedef vector<vector<int> > vvi; // typedef tuple<ll, ll, ll> tiii; typedef pair<int, int> pii; typedef vector<pair<int, int> > vpii; typedef vector<bool> vb; typedef vector<string> vs; typedef vector<char> vc; const int inf = 1e9 + 228; const int infll = 1e18; const ll mod = 1e9 + 7; const ll mod2 = 998244353; const ld eps = 1e-14; void fast_io(){ ios_base::sync_with_stdio(0); cin.tie(0); // freopen("inputik.txt", "r", stdin); // freopen("outputik.txt", "w", stdout); } void solve(){ int n, m, k; cin >> n >> m >> k; k -= m; int a, b, c; cin >> a >> b >> c; int t; cin >> t; vi s(m); for(int &i:s) cin >> i; vi kek; int ans = 0; if((n-1) * b <= t) ans++; for(int i=0; i+1<m; i++){ int time = (s[i]-1) * b; if(time > t) break; int can = (t - time)/a; // cout << can << endl; can = min(can, s[i+1]-s[i]-1); ans += can+1 - (i == 0); int cur = s[i] + can + 1; for(int j=0; j<k && cur < s[i+1]; j++){ time = (s[i]-1) * b + (cur-s[i]) * c; if(time > t) break; can = (t - time)/a; can = min(can, s[i+1]-cur-1); kek.pb(can+1); cur += can+1; } } sort(all(kek)); reverse(all(kek)); for(int i=0; i<min(k, (int)kek.size()); i++) ans += kek[i]; cout << ans << endl; } signed main(){ fast_io(); // ;(time(NULL)); cout << fixed << setprecision(10); int q = 1; // cin >> q; while(q--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...