結果
問題 |
No.968 引き算をして門松列(その3)
|
ユーザー |
![]() |
提出日時 | 2025-06-12 20:09:30 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,827 bytes |
コンパイル時間 | 167 ms |
コンパイル使用メモリ | 82,700 KB |
実行使用メモリ | 78,372 KB |
最終ジャッジ日時 | 2025-06-12 20:14:53 |
合計ジャッジ時間 | 2,452 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | WA * 10 |
ソースコード
def is_kadomatsu(A, B, C): if A == B or B == C or A == C: return False sorted_vals = sorted([A, B, C]) mid = sorted_vals[1] return mid == A or mid == C def compute_min_cost(A, B, C, X, Y, Z): if is_kadomatsu(A, B, C): return 0 min_cost = float('inf') # Case 1a: b' < a' < c', x=0, y=0 if A < C: max_z = min(A - B - 1, A - 1, C - 1) if max_z >= 0: a = A - max_z b = B c = C - max_z if b < a < c and a != b and a != c and b != c: cost = Z * max_z min_cost = min(min_cost, cost) # Case 1b: c' < a' < b', x=0, z=0 lower_y = max(0, C - A + 1) upper_y = min(B - A - 1, B - 1, C - 1) if lower_y <= upper_y: y = lower_y a = A b = B - y c = C - y if c < a < b and a != b and a != c and b != c: cost = Y * y min_cost = min(min_cost, cost) # Case 2a: a' < c' < b', y=0, x=0 if A < C and C < B: max_z = min(A - 1, C - 1) if max_z >= 0: a = A - max_z c = C - max_z b = B if a < c < b and a != b and a != c and b != c: cost = Z * max_z min_cost = min(min_cost, cost) # Case 2b: b' < c' < a', y=0, z=0 lower_x = max(0, B - C + 1) upper_x = min(A - C - 1, A - 1, B - 1) if lower_x <= upper_x: x = lower_x a = A - x b = B - x c = C if b < c < a and a != b and a != c and b != c: cost = X * x min_cost = min(min_cost, cost) return min_cost if min_cost != float('inf') else -1 T = int(input()) for _ in range(T): A, B, C, X, Y, Z = map(int, input().split()) print(compute_min_cost(A, B, C, X, Y, Z))