結果
問題 |
No.1071 ベホマラー
|
ユーザー |
![]() |
提出日時 | 2020-06-05 21:48:50 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 699 bytes |
コンパイル時間 | 97 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 43,704 KB |
最終ジャッジ日時 | 2024-12-17 14:15:52 |
合計ジャッジ時間 | 37,969 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 9 TLE * 11 |
ソースコード
def ceil_div(x, y): ret = x // y if x % y == 0: return ret else: return ret + 1; def calc(n, k, x, y, av, ycnt): ret = y * ycnt for e in av: rest = e - k * ycnt if rest <= 0: continue ret += x * ceil_div(rest, k) return ret tmp = tuple(list(map(int, input().split(' ')))) a = list(map(int, input().split(' '))) av = [ e - 1 for e in a ] n, k, x, y = tmp x0 = 0 x3 = int(1e18) f = lambda arg: calc(n, k, x, y, av, arg) while 2 < x3 - x0: x1 = (2 * x0 + x3) // 3 x2 = (x0 + 2 * x3) // 3 f1 = f(x1) f2 = f(x2) if f1 < f2: x3 = x2 else: x0 = x1 print(min([f(x0), f(x0+1), f(x0+2)]))