結果
| 問題 | No.3068 Speedrun (Hard) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-05-25 14:11:35 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 684 ms / 2,000 ms |
| + 520µs | |
| コード長 | 1,299 bytes |
| 記録 | |
| コンパイル時間 | 410 ms |
| コンパイル使用メモリ | 95,596 KB |
| 実行使用メモリ | 83,584 KB |
| 最終ジャッジ日時 | 2026-07-11 01:57:43 |
| 合計ジャッジ時間 | 7,027 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 32 |
ソースコード
A,B,C,D,N = map(int,input().split())
P,Q,R,S,T = map(int,input().split())
ans = []
if P==Q==R==S:
if S*N==T:
x = min(A,N)
y = min(B,N-x)
z = min(C,N-x-y)
w = min(D,N-x-y-z)
if x+y+z+w==N:
ans = [x,y,z,w]
elif P!=S and Q==R==S:
if (T-S*N)%(P-S)==0 and (T-S*N)//(P-S)<=A:
x = (T-S*N)//(P-S)
y = min(B,N-x)
z = min(C,N-x-y)
w = min(D,N-x-y-z)
if x+y+z+w==n:
ans = [x,y,z,w]
elif P!=S and Q!=S and R==S:
for x in range(A+1):
if A>N:break
if (S*N-T-(S-P)*x)%(S-Q)==0 and (S*N-T-(S-P)*x)//(S-Q)<=B:
y = (S*N-T-(S-P)*x)//(S-Q)
if x+y<=N:
z = min(C,N-x-y)
w = min(D,N-x-y-z)
if x+y+z+w==N:
ans = [x,y,z,w]
break
else:
for x in range(A+1):
if x>N:break
for y in range(B+1):
if x+y>N:break
if (S*N-T-(S-P)*x-(S-Q)*y)%(S-R)==0 and (S*N-T-(S-P)*x-(S-Q)*y)//(S-R)<=C:
z = (S*N-T-(S-P)*x-(S-Q)*y)//(S-R)
if x+y+z<=N:
w = min(D,N-x-y-z)
if x+y+z+w==N:
ans = [x,y,z,w]
break
if ans:break
print(*ans)