結果
問題 | No.2496 LCM between Permutations |
ユーザー |
![]() |
提出日時 | 2024-01-02 12:52:26 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 189 ms / 2,000 ms |
コード長 | 707 bytes |
コンパイル時間 | 82 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 28,232 KB |
平均クエリ数 | 951.38 |
最終ジャッジ日時 | 2024-09-27 17:42:04 |
合計ジャッジ時間 | 4,536 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 28 |
ソースコード
memo={}def query(i,j):if (i,j) in memo:return memo[(i,j)]print("?",i+1,j+1)retu=int(input())memo[(i,j)]=retureturn retuN=int(input())if N==1:print("!",1,1)exit()for p in range(N,1,-1):if all(p%i for i in range(2,p)):breaklcm=[]for i in range(N):lcm.append(query(i,i))idx=[i for i in range(N) if lcm[i]%p==0]if len(idx)==1:a,b=idx[0],idx[0]else:i,j=idxfor a,b in ((i,j),(j,i)):if query(a,b)%p==0:breakA=[None]*NB=[None]*Nfor i in range(N):if i==a:continueA[i]=query(i,b)//pfor j in range(N):if j==b:continueB[j]=query(a,j)//pA[a]=pB[b]=pprint("!",*A,*B)