結果
| 問題 |
No.967 引き算をして門松列(その2)
|
| コンテスト | |
| ユーザー |
Chihaya_chan
|
| 提出日時 | 2020-06-13 14:04:30 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 348 ms / 2,000 ms |
| コード長 | 2,693 bytes |
| コンパイル時間 | 200 ms |
| コンパイル使用メモリ | 82,560 KB |
| 実行使用メモリ | 79,500 KB |
| 最終ジャッジ日時 | 2024-06-25 03:02:24 |
| 合計ジャッジ時間 | 3,314 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 10 |
ソースコード
# yukicoder problem solving
# 門松
T = int(input())
def case_1(A,B,C,X,Y,Z):
a,b,c,x,y,z=A,B,C,X,Y,Z
cost = 0
if b > a:
if b == 1:
return float("inf")
else:
pass
elif b <= a:
if b == 1:
return float("inf")
elif b > 1:
cost += x*(a+1-b)
a = b-1
# a>c>0 の比較
if a > c:
if a == 1:
return float("inf")
else:
pass
elif a <= c:
if a == 1:
return float("inf")
else:
cost += z*(c+1-a)
return cost
def case_2(A,B,C,X,Y,Z):
a,b,c,x,y,z=A,B,C,X,Y,Z
cost = 0
if c > a:
if c == 1:
return float("inf")
else:
pass
elif c <= a:
if c == 1:
return float("inf")
elif c > 1:
cost += x*(a+1-c)
a = c-1
# a>b>0 の比較
if a > b:
if a == 1:
return float("inf")
else:
pass
elif a <= b:
if a == 1:
return float("inf")
else:
cost += y*(b+1-a)
return cost
def case_3(A,B,C,X,Y,Z):
a,b,c,x,y,z=A,B,C,X,Y,Z
cost = 0
if b > c:
if b == 1:
return float("inf")
else:
pass
elif b <= c:
if b == 1:
return float("inf")
elif b > 1:
cost += z*(c+1-b)
c = b-1
# c>a>0 の比較
if c > a:
if c == 1:
return float("inf")
else:
pass
elif c <= a:
if c == 1:
return float("inf")
else:
cost += x*(a+1-c)
return cost
def case_4(A,B,C,X,Y,Z):
a,b,c,x,y,z=A,B,C,X,Y,Z
cost = 0
if a > c:
if a == 1:
return float("inf")
else:
pass
elif a <= c:
if a == 1:
return float("inf")
elif a > 1:
cost += z*(c+1-a)
c = a-1
# c>b>0 の比較
if c > b:
if c == 1:
return float("inf")
else:
pass
elif c <= b:
if c == 1:
return float("inf")
else:
cost += y*(b+1-c)
return cost
def solve():
ans = float("inf")
a, b, c, x, y, z = map(int, input().split())
# case b>a>c>0:
ans = min(ans, case_1(a, b, c, x, y, z))
# case c>a>b>0:
ans = min(ans, case_2(a, b, c, x, y, z))
# case b>c>a>0:
ans = min(ans, case_3(a, b, c, x, y, z))
# case a>c>b>0:
ans = min(ans, case_4(a, b, c, x, y, z))
if ans != float("inf"):
return ans
return -1
for i in range(T):
print(solve())
Chihaya_chan