結果
問題 |
No.775 tatyamと素数大富豪(hard)
|
ユーザー |
![]() |
提出日時 | 2018-12-22 01:15:25 |
言語 | PyPy2 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,451 bytes |
コンパイル時間 | 1,785 ms |
コンパイル使用メモリ | 76,660 KB |
実行使用メモリ | 101,376 KB |
最終ジャッジ日時 | 2024-10-14 01:29:42 |
合計ジャッジ時間 | 8,691 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 WA * 1 |
other | AC * 8 WA * 1 TLE * 1 |
ソースコード
import sys import math import random def is_Prime(n): """ Miller-Rabin primality test. A return value of False means n is certainly not prime. A return value of True means n is very likely a prime. """ if n!=int(n): return False n=int(n) #Miller-Rabin test for prime if n==0 or n==1 or n==4 or n==6 or n==8 or n==9: return False if n==2 or n==3 or n==5 or n==7: return True s = 0 d = n-1 while d%2==0: d>>=1 s+=1 assert(2**s * d == n-1) def trial_composite(a): if pow(a, d, n) == 1: return False for i in range(s): if pow(a, 2**i * d, n) == n-1: return False return True for i in range(12):#number of trials a = random.randrange(2, n) if trial_composite(a): return False return True def dfs(id,s,cur): global K global prev if id==N: if cur!=prev: print(cur) K -= 1 if K==0: sys.exit(0) prev = cur return for i in range(N): if i not in s: if i>0 and A[i]==A[i-1] and (i-1) not in s: continue s.add(i) dfs(id+1,s,cur+A[i]) s.remove(i) N,K=map(int,raw_input().strip().split(" ")) A=raw_input().strip().split(" ") prev="" for x in range(N): for i in range(N-1): if A[i]+A[i+1] < A[i+1]+A[i] or (A[i]+A[i+1] == A[i+1]+A[i] and A[i]<A[i+1]): A[i],A[i+1]=A[i+1],A[i] dfs(0,set(),"")