結果
問題 |
No.1739 Princess vs. Dragoness (& AoE)
|
ユーザー |
![]() |
提出日時 | 2021-11-12 22:06:06 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 1,132 ms / 3,000 ms |
コード長 | 1,052 bytes |
コンパイル時間 | 2,436 ms |
コンパイル使用メモリ | 216,032 KB |
実行使用メモリ | 10,764 KB |
最終ジャッジ日時 | 2024-06-22 13:15:56 |
合計ジャッジ時間 | 21,515 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
import std; void main() { long N, A, B, X, Y; readf("%d %d %d %d %d\n", N, A, B, X, Y); auto H = readln.chomp.split.to!(long[]); long ok = 10 ^^ 9, ng = -1; while (ok - ng > 1) { long mid = (ok + ng) / 2; auto D = H.dup; D[] -= mid; auto P = D.heapify; bool isOK; foreach (i; 0 .. A) { if (P.empty) { isOK = true; break; } auto f = P.front; P.popFront; f = max(0, f-X); if (f > 0) { P.insert(f); } } if (!isOK) { long S; while (!P.empty) { auto f = P.front; P.popFront; if (f > 0) { S += f; } } if (S <= B * Y) { isOK = true; } } if (isOK) { ok = mid; } else { ng = mid; } } ok.writeln; }