結果
| 問題 | No.1071 ベホマラー |
| コンテスト | |
| ユーザー |
kbys
|
| 提出日時 | 2020-06-23 04:06:03 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 1,712 ms / 2,000 ms |
| + 406µs | |
| コード長 | 661 bytes |
| 記録 | |
| コンパイル時間 | 228 ms |
| コンパイル使用メモリ | 96,224 KB |
| 実行使用メモリ | 98,688 KB |
| 最終ジャッジ日時 | 2026-08-05 09:01:28 |
| 合計ジャッジ時間 | 17,345 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 20 |
ソースコード
import bisect
import sys
input=sys.stdin.readline
def main(args):
N, K, X, Y = map(int,input().split())
A = list(map(lambda x:-(-(int(x)-1)//K), input().split()))
A.sort()
ans = float('inf')
l = 0
behomara = 0
while True:
if behomara >= A[l]:
l = bisect.bisect_right(A,behomara)
#回復したい人数
res = N - l
if Y < res*X:
behomara += 1
else:
behoimi = sum(map(lambda x:x-behomara,A[l:]))
break
if res == 0:
break
print(X*behoimi+Y*behomara)
if __name__ == '__main__':
main(sys.argv[1:])
kbys