結果
| 問題 |
No.12 限定された素数
|
| コンテスト | |
| ユーザー |
こる
|
| 提出日時 | 2017-01-07 13:50:00 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 979 ms / 5,000 ms |
| コード長 | 2,462 bytes |
| コンパイル時間 | 2,413 ms |
| コンパイル使用メモリ | 78,288 KB |
| 実行使用メモリ | 65,868 KB |
| 最終ジャッジ日時 | 2024-11-24 09:00:47 |
| 合計ジャッジ時間 | 14,261 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 |
ソースコード
import java.io.*;
import java.util.*;
public class Main {
static char[] a;
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
StringTokenizer st=new StringTokenizer(br.readLine());
a=new char[n];
for(int i=0;i<n;i++){
a[i]=st.nextToken().charAt(0);
}
int maxi=5000000;
boolean[] e=new boolean[maxi+1];
Arrays.fill(e,true);
e[0]=e[1]=false;
int i=2;
while(i*i<=maxi){
int j=i+i;
while(j<=maxi){
e[j]=false;
j+=i;
}i++;
while(!e[i]){ i++; }
}List<Integer> list=new ArrayList<>();
for(i=0;i<maxi+1;i++){
if(e[i]){ list.add(i); }
}
int sum_max=0;
boolean end_flag=false;
int l=0;
int[] end_list=new int[n];
Arrays.fill(end_list, 0);
for(int r=0;r<list.size();r++){
if(check(list.get(r))){
if(sum(end_list)!=n){
for(int j=0;j<a.length;j++){
for(int k=0;k<String.valueOf(list.get(r)).length();k++){
if(a[j]==String.valueOf(list.get(r)).charAt(k)) end_list[j]=1;
}
}
}if(sum(end_list)==n){
end_flag=true;
int r_index=(r==list.size()-1) ? maxi:list.get(r+1)-1;
int l_index=(l==0) ? 1:list.get(l-1)+1;
//System.out.println(r_index+" "+l_index);
sum_max=Math.max(sum_max,(r_index-l_index));
}
}else{
Arrays.fill(end_list, 0);
l=r+1;
}
}
System.out.println((end_flag) ? sum_max:-1);
}
static boolean check(int num){
String str=String.valueOf(num);
int count=0;
for(int i=0;i<str.length();i++){
for(int j=0;j<a.length;j++){
if(a[j]==str.charAt(i)){ count++; break; }
}
}
//if(count==str.length()) System.out.println(num);
return count==str.length();
}
static int sum(int[] array){
int sum=0;
for(int n:array) sum+=n;
return sum;
}
}
こる