結果

問題 No.3068 Speedrun (Hard)
ユーザー flippergo
提出日時 2025-05-26 11:22:06
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,054 bytes
コンパイル時間 617 ms
コンパイル使用メモリ 82,848 KB
実行使用メモリ 74,320 KB
最終ジャッジ日時 2025-05-26 11:22:12
合計ジャッジ時間 4,764 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 19 WA * 12 RE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

A,B,C,D,N = map(int,input().split())
P,Q,R,S,T = map(int,input().split())
def ext_gcd(a,b):
    if b==0:
        return a,1,0
    d,x,y = ext_gcd(b,a%b)
    return d,y,x-(a//b)*y
ans = []
if S==P==Q==R:
    x = min(N,A)
    y = min(N-x,B)
    z = min(N-x-y,C)
    w = min(N-x-y-z,D)
    ans = [x,y,z,w]
elif S==P==Q:
    z = (S*N-T)//(S-R)
    x = min(N-z,A)
    y = min(N-z-x,B)
    w = min(N-x-y-z,D)
    ans = [x,y,z,w]
else:
    for z in range(C+1):
        rhs = S*N-T-(S-R)*z
        d,_,_ = ext_gcd(S-P,S-Q)
        if rhs%d!=0:continue
        a = (S-P)//d
        b = (S-Q)//d
        rhs = rhs//d
        _,u,v = ext_gcd(a,b)
        u = u*rhs
        v = v*rhs
        if u<0:
            k = (-u+b)//b
            u += k*b
            v -= k*a
        elif v<0:
            k = (-v+a)//a
            u -= k*b
            v += k*a
        if u>=0 and v>=0:
            x = u
            y = v
            w = min(N-x-y-z,D)
            if x+y+z+w==N and x<=A and y<=B and w>=0:
                ans = [x,y,z,w]
                break
print(*ans)
0