結果
問題 | No.115 遠足のおやつ |
ユーザー |
![]() |
提出日時 | 2025-03-07 09:58:18 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 944 bytes |
コンパイル時間 | 501 ms |
コンパイル使用メモリ | 82,180 KB |
実行使用メモリ | 54,024 KB |
最終ジャッジ日時 | 2025-03-07 09:58:22 |
合計ジャッジ時間 | 3,751 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 WA * 9 |
ソースコード
N, D, K = map(int, input().split()) # 個数が足りない if N < K: exit(print(-1)) rui = [i for i in range(N + 1)] for i in range(N): rui[i + 1] += rui[i] # 予算が少なすぎ if D < rui[K]: exit(print(-1)) # 予算が大きすぎ # N + (N - 1) + ... + (N - K + 1)でも D に届かない if sum([i for i in range(N, N - K + 2, -1)]) < D: exit(print(-1)) nokori_money = D pos = N ans = [] # Nのおやつから検討する for i in range(K): nokori_cnt = K - i # おやつ pos を購入してよいか? # 条件:pos を購入したとき、残りの個数で残りのお金を使える # 条件を満たさない場合は pos-1 while True: if rui[nokori_cnt - 1] > nokori_money - pos: # pos は購入できない pos -= 1 else: nokori_money -= pos ans.append(pos) pos -= 1 break ans.reverse() print(*ans)