結果
問題 | No.968 引き算をして門松列(その3) |
ユーザー | tamato |
提出日時 | 2020-01-13 22:07:48 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 192 ms / 2,000 ms |
コード長 | 2,067 bytes |
コンパイル時間 | 259 ms |
コンパイル使用メモリ | 87,104 KB |
実行使用メモリ | 79,012 KB |
最終ジャッジ日時 | 2023-08-24 16:53:10 |
合計ジャッジ時間 | 2,653 ms |
ジャッジサーバーID (参考情報) |
judge12 / judge15 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 68 ms
71,276 KB |
testcase_01 | AC | 69 ms
71,056 KB |
testcase_02 | AC | 69 ms
71,308 KB |
testcase_03 | AC | 140 ms
77,532 KB |
testcase_04 | AC | 142 ms
78,104 KB |
testcase_05 | AC | 144 ms
77,816 KB |
testcase_06 | AC | 145 ms
78,540 KB |
testcase_07 | AC | 141 ms
77,876 KB |
testcase_08 | AC | 173 ms
78,116 KB |
testcase_09 | AC | 176 ms
78,268 KB |
testcase_10 | AC | 174 ms
78,968 KB |
testcase_11 | AC | 192 ms
79,012 KB |
ソースコード
def main(): import sys input = sys.stdin.readline T = int(input()) for _ in range(T): A, B, C, x, y, z = map(int, input().split()) if A == C == 1: print(-1) continue # b max a, b, c = A, B, C ans1 = 0 if a >= b: d = a - (b-1) ans1 += z * d a -= d c -= d if c >= b: d = c - (b-1) ans1 += z * d a -= d c -= d if a == c: ans11 = ans1 a1, b1, c1 = a, b, c ans11 += x a1 -= 1 b1 -= 1 if b1 == c1: ans11 += z a1 -= 1 c1 -= 1 if a1 <= 0 or b1 <= 0 or c1 <= 0: ans11 = 10**30 ans12 = ans1 a2, b2, c2 = a, b, c ans12 += y c2 -= 1 b2 -= 1 if b2 == a2: ans12 += z a2 -= 1 c2 -= 1 if a2 <= 0 or b2 <= 0 or c2 <= 0: ans12 = 10 ** 30 ans1 = min(ans11, ans12) else: if a <= 0 or b <= 0 or c <= 0: ans1 = 10**30 # b min a, b, c = A, B, C ans2 = 0 if a <= b: d = b - (a-1) ans2 += y * d b -= d c -= d if c <= b: d = b - (c-1) ans2 += x * d a -= d b -= d if a == c: if x < y: ans2 += x a -= 1 b -= 1 else: ans2 += y b -= 1 c -= 1 if a <= 0 or b <= 0 or c <= 0: ans2 = 10**30 else: if a <= 0 or b <= 0 or c <= 0: ans2 = 10**30 ans = min(ans1, ans2) if ans != 10**30: print(ans) else: print(-1) #print(ans1, ans2) if __name__ == '__main__': main()