結果
問題 |
No.3068 Speedrun (Hard)
|
ユーザー |
|
提出日時 | 2025-04-03 09:07:10 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,693 bytes |
コンパイル時間 | 497 ms |
コンパイル使用メモリ | 81,968 KB |
実行使用メモリ | 66,764 KB |
最終ジャッジ日時 | 2025-04-03 09:07:20 |
合計ジャッジ時間 | 10,149 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 25 WA * 7 |
ソースコード
import sys input_data = sys.stdin.read().strip().split() if not input_data: sys.exit(0) A, B, C, D, N, P, Q, R, S, T = map(int, input_data) # 変数の意味: # A: 難易度1の問題総数,P: 解くのにかかる分数 # B, Q: 難易度1.5 # C, R: 難易度2 # D, S: 難易度2.5 # N: 合計解いた問題数,T: 総使用時間 found = False for n_a in range(0, min(A, N) + 1): for n_b in range(0, min(B, N - n_a) + 1): rem = N - n_a - n_b # 残りを難易度2と2.5から解く # 残りの問題からかかる時間は, n_c*R+(rem-n_c)*S = rem*S + n_c*(R-S) # よって n_c*(R-S) = T - (n_a*P+n_b*Q) - rem*S diff = T - (n_a * P + n_b * Q) - rem * S # n_cのとりうる範囲: 0 <= n_c <= C かつ n_d = rem - n_c <= D # つまり n_c >= max(0, rem-D) と n_c <= min(C, rem) low_nc = max(0, rem - D) high_nc = min(C, rem) if R - S == 0: # この場合,左辺は常に0なので diff==0 でなければならない if diff != 0: continue # diff==0なら,low_nc <= n_c <= high_nc の任意の n_c でよい n_c = low_nc # とりあえずlow_ncを選ぶ n_d = rem - n_c print(n_a, n_b, n_c, n_d) sys.exit(0) else: if diff % (R - S) != 0: continue n_c = diff // (R - S) if low_nc <= n_c <= high_nc: n_d = rem - n_c # n_dが条件内かどうか(n_d<=D は自動的に満たすはず) if 0 <= n_d <= D: print(n_a, n_b, n_c, n_d) sys.exit(0)