結果
| 問題 |
No.775 tatyamと素数大富豪(hard)
|
| コンテスト | |
| ユーザー |
kmjp
|
| 提出日時 | 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(),"")
kmjp