結果
問題 | No.2519 Coins in Array |
ユーザー |
![]() |
提出日時 | 2023-10-27 23:03:52 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,749 bytes |
コンパイル時間 | 384 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 107,008 KB |
最終ジャッジ日時 | 2024-09-25 15:03:10 |
合計ジャッジ時間 | 7,301 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 34 WA * 3 |
ソースコード
from math import *from copy import *inf = 10 ** 18def f(x, y):if gcd(x, y) != 1:return 0v = (x - 1) * (y - 1)if v >= inf:return -1return vN = int(input())A = list(map(int, input().split()))if N == 2:print(f(A[0], A[1]))print(1, 2)elif N == 3:v = infT = [(1, 2), (1, 2)], [(1, 3), (1, 2)]ans = []for tt in T:D = deepcopy(A)for t in tt:temp = f(D[t[0] - 1], D[t[1] - 1])D.pop(t[1] - 1)D.pop(t[0] - 1)if temp == -1:breakD.append(temp)else:if D[0] < v:ans = ttv = D[0]print(v)for a, b in ans:print(a, b)else:def f1(A , ans=[]):ind1, ind2 = -1, -1N = len(A)for i in range(N):if ind1 == -1:if A[i]%2 == 0:ind1 = i + 1else:if A[i]%2 == 0:ind2 = i + 1if ind2 != -1:print(0)for a, b in ans:print(a, b)print(ind1, ind2)for i in range(N - 1, 1, -1):print(1, i)exit()def f2(A):ind1, ind2 = -1, -1N = len(A)for i in range(N):if ind1 == -1:if A[i]%2 == 1:ind1 = i + 1else:if A[i]%2 == 1:ind2 = i + 1v = f(A.pop(ind2 - 1), A.pop(ind1 - 1))A.append(v)return (ind1, ind2), Af1(A)t, A = f2(A)ans = [t]f1(A, ans)t, A = f2(A)ans.append(t)f1(A, ans)