結果
問題 | No.968 引き算をして門松列(その3) |
ユーザー | tamato |
提出日時 | 2020-01-13 22:07:48 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 166 ms / 2,000 ms |
コード長 | 2,067 bytes |
コンパイル時間 | 188 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 77,396 KB |
最終ジャッジ日時 | 2024-06-02 06:44:20 |
合計ジャッジ時間 | 2,232 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 39 ms
52,224 KB |
testcase_01 | AC | 39 ms
52,352 KB |
testcase_02 | AC | 39 ms
52,224 KB |
testcase_03 | AC | 115 ms
76,564 KB |
testcase_04 | AC | 118 ms
76,704 KB |
testcase_05 | AC | 115 ms
76,568 KB |
testcase_06 | AC | 122 ms
76,420 KB |
testcase_07 | AC | 114 ms
76,804 KB |
testcase_08 | AC | 148 ms
77,396 KB |
testcase_09 | AC | 149 ms
77,232 KB |
testcase_10 | AC | 144 ms
77,044 KB |
testcase_11 | AC | 166 ms
77,036 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()