Submission #1291451

#TimeUsernameProblemLanguageResultExecution timeMemory
1291451wedonttalkanymoreSemiexpress (JOI17_semiexpress)C++20
100 / 100
43 ms33232 KiB
#include <bits/stdc++.h> /* Ngay hay dem Voi troi giac mo em dem */ using namespace std; using ll = long long; #define int long long #define pii pair<ll, ll> #define fi first #define se second const ll N = 2e5 + 5, inf = 1e18, mod = 1e9 + 7, block = 320, lim = 19; int n, m, k, A, B, C, T; int a[N]; signed main() { ios::sync_with_stdio(false); cin.tie(0); if (fopen(".inp", "r")) { freopen(".inp", "r", stdin); freopen(".out", "w", stdout); } cin >> n >> m >> k; cin >> A >> B >> C; cin >> T; for (int i = 1; i <= m; i++) cin >> a[i]; a[m + 1] = n + 1; int ans = 0; priority_queue <int> pq; // if ((n - 1) * B <= T) ans++; for (int i = 1; i <= m; i++) { int cost = (a[i] - 1) * B; // dung express if (cost > T) break; int remain = (T - cost) / A; // dung local int range = min(a[i + 1] - 1, a[i] + remain); ans += range - a[i] + 1; if (a[i] == 1) ans--; for (int j = 0; j < k && range < a[i + 1] - 1; j++) { int tmp = cost + ((range + 1) - a[i]) * C; // dung semiexpress tu a[i] + 1 -> range + 1 if (tmp > T) break; int remain = (T - tmp) / A; // dung local int newrange = min(a[i + 1] - 1, range + 1 + remain); pq.push(newrange - range); range = newrange; } } for (int i = 0; i < k - m; i++) { if (pq.size()) { ans += pq.top(); pq.pop(); } } cout << ans; return 0; }

Compilation message (stderr)

semiexpress.cpp: In function 'int main()':
semiexpress.cpp:23:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |         freopen(".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
semiexpress.cpp:24:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |         freopen(".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...