結果
| 問題 |
No.6 使いものにならないハッシュ
|
| コンテスト | |
| ユーザー |
kou6839
|
| 提出日時 | 2014-11-09 00:39:15 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,511 bytes |
| コンパイル時間 | 2,231 ms |
| コンパイル使用メモリ | 79,340 KB |
| 実行使用メモリ | 56,640 KB |
| 最終ジャッジ日時 | 2024-12-31 08:45:57 |
| 合計ジャッジ時間 | 8,660 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 WA * 29 |
ソースコード
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int K=sc.nextInt();
int N = sc.nextInt();
boolean[] nera = new boolean[N+1];
Arrays.fill(nera, true);
for(int i=2;i*i<=N;i++){
if(nera[i]){
for(int j=i*2;j<=N;j+=i){
if(nera[j])nera[j]=false;
}
}
}
ArrayList<Integer> sosuu = new ArrayList<>();
ArrayList<Integer> ha = new ArrayList<>();
for(int i=K;i<=N;i++){
if(i==1) continue;
if(nera[i]){
int temp=i;
sosuu.add(i);
while(temp>9){
int temp2=temp;
temp=0;
while(temp2!=0){
temp+=temp2%10;
temp2=temp2/10;
}
}
ha.add(temp);
}
}
int t=0;
int s=0;
Queue<Integer> queue = new LinkedList<>();
int ans=0;
int ansmemo=0;
int temp=0;
int max=0;
while(true){
while(t<ha.size()){
temp = ha.get(t);
boolean flag = queue.contains(temp);
queue.offer(temp);
t++;
if(t==ha.size()){
while(true){
int temp2 = queue.poll();
s++;
if(temp2==temp){
break;
}
}
if(t-s-1>ans){
max=sosuu.get(s);
}
System.out.println(max);
return;
}
if(flag){
if(t-s-1>ans){
ans=t-s-1;
max=sosuu.get(s);
}
break;
}
}
while(true){
int temp2=queue.poll();
s++;
if(temp2==temp){
temp=0;
break;
}
}
}
}
}
kou6839