QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#806296 | #9552. The Chariot | KKT89 | WA | 11ms | 10616kb | Python3 | 1.3kb | 2024-12-09 03:38:36 | 2024-12-09 03:38:36 |
Judging History
answer
def calc(D, A, B, C, X, Y):
if D <= X:
return A
elif D <= X + Y:
return A + B * (D - X)
else:
return A + B * Y + C * (D - X - Y)
for q in range(int(input())):
A, B, C, X, Y, D = map(int, input().split())
# 1台だけ使う場合
base = calc(D, A, B, C, X, Y)
res = base
# ABを出来るだけ使う場合
res = min(res, D // (X + Y) * (A + B * Y) + calc(D % (X + Y), A, B, C, X, Y))
# Aを使ってお得になる場合
c_rem = max(0, D - X - Y)
b_rem = max(0, D - X)
res_A = base
if C * X > A:
res_A -= (C * X - A) * (c_rem // X)
c_rem %= X
if c_rem < X and C * c_rem + B * min(X - c_rem, b_rem) > A:
res_A -= C * c_rem + B * min(X - c_rem, b_rem) - A
b_rem -= X - c_rem
b_rem = max(0, b_rem)
c_rem = 0
if c_rem == 0:
if B * X > A:
res_A -= (B * X - A) * (b_rem // X)
b_rem %= X
if b_rem < X and B * b_rem > A:
res_A -= B * b_rem - A
res = min(res, res_A)
# ABを使ってお得になる場合
c_rem = max(0, D - X - Y)
b_rem = Y
res_AB = base
if C * (X + Y) > A + B * Y:
res_AB -= (C * (X + Y) - A - B * Y) * (c_rem // (X + Y))
c_rem %= X + Y
res = min(res, res_AB)
# output
print(res)
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 11ms
memory: 10616kb
input:
5 160 27 41 3 12 3 160 27 41 3 12 4 160 27 41 3 12 99 1 999 999 1 99 999 999 999 1 1 99 9999999999999999
output:
160 187 3226 -896203 10000000000099799
result:
wrong answer 4th lines differ - expected: '999', found: '-896203'