結果
問題 |
No.1739 Princess vs. Dragoness (& AoE)
|
ユーザー |
|
提出日時 | 2021-11-12 22:16:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 736 ms / 3,000 ms |
コード長 | 819 bytes |
コンパイル時間 | 1,957 ms |
コンパイル使用メモリ | 173,172 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-25 19:14:01 |
合計ジャッジ時間 | 14,973 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
#include <bits/stdc++.h> #define rep(i, l, r) for (int i = (l); i < (r); i++) using namespace std; typedef long long ll; int main() { int N, A, B, X, Y; cin >> N >> A >> B >> X >> Y; vector<int> H(N); rep(i, 0, N) cin >> H[i]; int ok = 1e9, ng = -1; while (ok > ng + 1) { int md = (ok + ng) / 2; priority_queue<int> pq; rep(i, 0, N) { pq.push(max(0, H[i] - md)); } rep(i, 0, A) { int p = pq.top(); pq.pop(); pq.push(max(0, p - X)); } ll S = 0; while (!pq.empty()) { int p = pq.top(); pq.pop(); S += p; //cout << "p=" << p << endl; } if (1LL * Y * B >= S) ok = md; else ng = md; } cout << ok << endl; }