結果
| 問題 | 
                            No.308 素数は通れません
                             | 
                    
| コンテスト | |
| ユーザー | 
                             satos___jp
                         | 
                    
| 提出日時 | 2015-12-01 23:07:09 | 
| 言語 | C++11(廃止可能性あり)  (gcc 13.3.0)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,503 bytes | 
| コンパイル時間 | 610 ms | 
| コンパイル使用メモリ | 62,520 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-09-14 07:19:36 | 
| 合計ジャッジ時間 | 3,145 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 92 WA * 15 | 
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:82:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   82 |         scanf("%s",s);
      |         ~~~~~^~~~~~~~
            
            ソースコード
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
#include<algorithm>
#include<cmath>
#include<climits>
#include<string>
#include<set>
#include<map>
using namespace std;
#define rep(i,n) for(int i=0;i<((int)(n));i++)
#define reg(i,a,b) for(int i=((int)(a));i<=((int)(b));i++)
#define irep(i,n) for(int i=((int)(n))-1;i>=0;i--)
#define ireg(i,a,b) for(int i=((int)(b));i>=((int)(a));i--)
typedef long long int lli;
typedef pair<int,int> mp;
#define fir first
#define sec second
#define IINF INT_MAX
#define LINF LLONG_MAX
int gone[10005][15];
int ok[1000005];
int nw,mh;
int dd[5]={1,0,-1,0,1};
bool isp[100005];
void initp(){
	rep(i,100005)isp[i]=true;
	isp[0]=isp[1]=false;
	
	reg(i,2,100000){
		if(isp[i]){
			for(int j=i*2;j<100000;j+=i)isp[j]=false;
		}
	}
}
void dfs(int y,int x){
	gone[y][x]=1;
	int np=(y-1)*nw+x;
	if(isp[np])return;
	if(ok[np]==-1)ok[np]=nw;
	mh=max(mh,y);
	rep(i,4){
		int tx=x+dd[i],ty=y+dd[i+1];
		if(gone[ty][tx]==-1)continue;
		if(!gone[ty][tx])dfs(ty,tx);
	}
}
void tes(){
	memset(ok,-1,sizeof(ok));
	initp();
	reg(w,2,10){
		memset(gone,-1,sizeof(gone));
		nw=w; mh=-1;
		reg(y,1,5000)reg(x,1,nw){
			gone[y][x]=0;
		}
		dfs(1,1);
		printf("%d %d\n",nw,mh);
	}
	
	rep(i,1000){
		printf("%d %d\n",i,ok[i]);
	}
}
char s[105];
int d[6]={8,9,10,15,16,22};
int main(void){
	int n=-1;
	scanf("%s",s);
	if(strlen(s)<=2)sscanf(s,"%d",&n);
	//tes();
	int a=8;
	if(n==4)a=3;
	if(n==6)a=5;
	rep(i,6)if(n==d[i])a=7;
	printf("%d\n",a);
	
	return 0;
}
            
            
            
        
            
satos___jp