Submission #71095

#TimeUsernameProblemLanguageResultExecution timeMemory
71095InovakLong Distance Coach (JOI17_coach)C++14
0 / 100
4 ms612 KiB
#include <bits/stdc++.h> #define fr first #define sc second #define pb push_back #define mk make_pair #define ll long long #define OK puts("OK"); #define sz(s) (int)s.size() #define all(s) s.begin(), s.end() using namespace std; const int N = 1e6+10; const ll inf = 1e18+10; ll x, n, m, w, t, ans; ll s[N]; pair <ll, ll> p[N]; bool u[N]; int main() { cin >> x >> n >> m >> w >> t; for(int i = 1; i <= n; i++) cin >> s[i]; for(int i = 1; i <= m; i++) { cin >> p[i].fr >> p[i].sc; if(x > p[i].fr) { ll xx = x - p[i].fr; ans += w * ((xx / t) + 1); } } ans += w * ((x / t) + 1); sort(p + 1, p + m + 1); sort(s + 1, s + n + 1); s[++n] = x; for(int i = 1; i <= n; i++) { ll xx = s[i] % t, yy = s[i] / t; for(int j = m; j >= 1; j--) { if(u[j] || xx < p[j].fr) continue; if(p[j].sc > w * (((x - p[j].fr) / t) + 1 - yy)) break; u[j] = 1; ans -= w * (((x - p[j].fr) / t) + 1 - yy); ans += p[j].sc; } } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...