結果
| 問題 |
No.3297 Bake Cookies
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-10-05 13:49:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 453 ms / 2,000 ms |
| コード長 | 641 bytes |
| コンパイル時間 | 418 ms |
| コンパイル使用メモリ | 82,516 KB |
| 実行使用メモリ | 259,800 KB |
| 最終ジャッジ日時 | 2025-10-05 13:50:12 |
| 合計ジャッジ時間 | 12,072 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 27 |
ソースコード
def check(x):
nokori = 0
O = []
for i in range(N):
if x-D[i]>=0:
O.append(x-D[i])
else:
nokori += D[i]-x
while nokori>0:
while O and O[-1]<T:
O.pop()
if O and O[-1]>=T:
O[-1]-=T
nokori -= 1
else:
break
return nokori==0
import sys
input = sys.stdin.readline
N, M, T = map(int, input().split())
A = list(map(int, input().split()))
D = [0 for _ in range(N)]
for a in A:
a-=1
D[a] += 1
l = 0
r = 10**18
while r-l>1:
mid = (l+r)//2
if check(mid):
r = mid
else:
l = mid
print(r)