結果
問題 |
No.12 限定された素数
|
ユーザー |
![]() |
提出日時 | 2024-10-21 12:52:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 612 ms / 5,000 ms |
コード長 | 688 bytes |
コンパイル時間 | 534 ms |
コンパイル使用メモリ | 82,028 KB |
実行使用メモリ | 116,180 KB |
最終ジャッジ日時 | 2024-10-21 12:52:46 |
合計ジャッジ時間 | 16,145 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 |
ソースコード
L=5000000 P=[1]*(L+1) P[0]=P[1]=0 for i in range(2,L+1): if P[i]: for j in range(i+i,L+1,i): P[j]=0 n=int(input()) a=list(map(int,input().split())) s=0 for v in a: s|=1<<v ans=-1 r=1 t=0 c=[0]*10 for l in range(1,L+1): while r+1<=L and t&s==t: if t==s: ans=max(ans,r-l) r+=1 if P[r]: for v in list(map(int,str(r))): if c[v]==0: t|=1<<v c[v]+=1 if t==s: ans=max(ans,r-l) if P[l]: for v in list(map(int,str(l))): c[v]-=1 if c[v]==0: t^=1<<v if r==l and l+1<=L: r+=1 if P[r]: for v in list(map(int,str(r))): if c[v]==0: t|=1<<v c[v]+=1 print(ans)