QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#781149 | #9552. The Chariot | scanner | WA | 18ms | 10704kb | Python3 | 1.8kb | 2024-11-25 14:56:35 | 2024-11-25 14:56:36 |
Judging History
answer
def user_input():
return input()
def solve():
A, B, C, X, Y, D = map(int, user_input().split())
if D <= X:
print(A)
else:
## 全拿A
ans = (D + X - 1) // X * A
## 一辆车
if D <= X + Y:
ans = min(ans, A + (D - X) * B)
## 一辆车
if D >= X + Y:
ans = min(ans, A + B * Y + (D - X - Y) * C)
## 尽可能用A
if X <= D:
cnt = D // X
ret = D % X
res = cnt * A
mit = min(ret, Y)
ret -= mit
res += mit * B
if (ret > 0):
res += ret * C
ans = min(ans, res)
## 尽可能用AB,最后用A
if X + Y <= D:
cnt = D // (X + Y)
ret = D % (X + Y)
res = cnt * A + cnt * B * Y
if ret > 0:
res += A
if (ret > X):
res += (ret - X) * B
ans = min(ans, res)
## 尽可能用AB,最后用C
if X + Y <= D:
cnt = D // (X + Y)
ret = D % (X + Y)
res = cnt * A + cnt * B * Y
res += C * ret
ans = min(ans, res)
## 尽可能用AB,最后一定用A
if X + Y <= D:
cnt = D // (X + Y)
ret = D % (X + Y)
res = cnt * A + cnt * B * Y
ccnt = (ret + X - 1) // X
res += ccnt * A
ans = min(ans, res)
## 尽可能用AB 最后一段A可能溢出回退
if X + Y <= D:
cnt = D // (X + Y)
ret = D % (X + Y)
res = cnt * A + cnt * B * Y
if ret <= X:
rret = X - ret
res -= min(Y, rret) * B
res += A
ans = min(ans, res)
else:
res += A
res += (ret - X) * B
ans = min(ans, res)
print(int(ans))
def main():
T = int(input())
for i in range(0, T):
solve()
if __name__ == "__main__":
main()
详细
Test #1:
score: 100
Accepted
time: 12ms
memory: 10704kb
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 999 10000000000099799
result:
ok 5 lines
Test #2:
score: -100
Wrong Answer
time: 18ms
memory: 10588kb
input:
2077 63 88 64 47 55 88 4 75 38 53 33 41 41 1 28 6 13 100 57 88 77 35 5 48 100 36 97 24 93 87 57 25 26 84 62 18 29 11 33 88 86 71 33 16 7 4 73 68 50 65 72 14 43 78 15 31 72 42 39 29 31 10 76 58 35 89 39 55 99 11 16 82 21 18 57 44 80 16 38 31 99 58 59 69 24 22 69 76 14 83 96 40 56 31 14 36 75 84 27 57...
output:
126 4 310 114 400 57 29 561 300 15 62 312 21 76 48 192 150 130 97 636 76 32 112 180 39 138 36 605 30 23 88 76 285 20 330 325 174 128 32 36 1 36 30 24 192 170 17 88 83 102 140 86 52 81 25 44 8 21 180 49 51 145 55 82 31 85 156 70 158 21 84 48 156 51 145 174 156 86 2 73 83 5 200 117 44 6 152 58 122 26 ...
result:
wrong answer 224th lines differ - expected: '312', found: '316'