結果

問題 No.308 素数は通れません
ユーザー btk
提出日時 2015-12-02 00:12:53
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,274 bytes
コンパイル時間 1,493 ms
コンパイル使用メモリ 165,524 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-14 07:23:25
合計ジャッジ時間 3,976 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 99 WA * 8
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
vector<bool> prime(10000,true);
bool solve(int w,int n){
vector<bool> used(30000,false);
used[1]=true;
used[0]=true;
queue<int> que;
que.push(1);
while(que.empty()==false){
int v=que.front();que.pop();
if(v%w!=1&&used[v-1]==false&&prime[v-1]==false){
que.push(v-1);
used[v-1]=true;
}
if(v%w!=0&&used[v+1]==false&&v+1<=n&&prime[v+1]==false){
que.push(v+1);
used[v+1]=true;
}
if(v+w<=n&&used[v+w]==false&&prime[v+w]==false){
que.push(v+w);
used[v+w]=true;
}
if(v-w>=1&&used[v-w]==false&&prime[v-w]==false){
que.push(v-w);
used[v-w]=true;
}
}
return used[n];
}
int main(){
string S;
cin>>S;
int a=7;
if(S.size()<4){
a=stoi(S);
for(int i=2;i<10000;i++){
if(prime[i]){
for(int j=i*2;j<10000;j+=i){
prime[j]=false;
}
}
}
for(int w = 2; w < a; w++){
if(solve(w,a)){
cout<<w<<endl;
return 0;
}
}
}
else cout<<8<<endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0