結果
問題 |
No.2519 Coins in Array
|
ユーザー |
![]() |
提出日時 | 2023-11-29 18:33:30 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,576 bytes |
コンパイル時間 | 215 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 32,204 KB |
最終ジャッジ日時 | 2024-09-26 13:34:02 |
合計ジャッジ時間 | 10,135 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 30 WA * 1 RE * 6 |
ソースコード
import bisect import copy import decimal import fractions import heapq import itertools import math import random import sys import time from collections import Counter,deque,defaultdict from functools import lru_cache,reduce from heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_max def _heappush_max(heap,item): heap.append(item) heapq._siftdown_max(heap, 0, len(heap)-1) def _heappushpop_max(heap, item): if heap and item < heap[0]: item, heap[0] = heap[0], item heapq._siftup_max(heap, 0) return item from math import gcd as GCD read=sys.stdin.read readline=sys.stdin.readline readlines=sys.stdin.readlines write=sys.stdout.write #import pypyjit #pypyjit.set_param('max_unroll_recursion=-1') #sys.set_int_max_str_digits(10**9) N=int(readline()) A=list(map(int,readline().split())) def f(a,b): if GCD(a,b)>1: return 0 return (a-1)*(b-1) ans_lst=[] if N>=4: ans=0 idx0=[i for i in range(N) if A[i]%2==0] while len(idx0)<2: idx1=[i for i in range(N) if A[i]%2] ans_lst.append(idx1[0],idx1[1]) A=[A[i] for i in range(N) if not i in idx1[:2]]+[(A[idx1[0]]-1)*(A[idx1[1]]-1)] N-=1 ans_lst.append((idx0[0],idx0[1])) for i in range(N-2): ans_lst.append((0,1)) elif N==3: ans=1<<60 ans_lst=None for i,j,k in ((0,1,2),(0,2,1),(1,2,0)): a=f(f(A[i],A[j]),A[k]) if a<ans: ans=a ans_lst=[(i,j),(0,1)] elif N==2: ans=f(A[0],A[1]) ans_lst=[(0,1)] print(ans) for i,j in ans_lst: print(i+1,j+1)