結果
| 問題 |
No.726 Tree Game
|
| コンテスト | |
| ユーザー |
takayuki
|
| 提出日時 | 2018-08-24 22:30:43 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 2,000 ms |
| コード長 | 1,303 bytes |
| コンパイル時間 | 1,021 ms |
| コンパイル使用メモリ | 104,112 KB |
| 最終ジャッジ日時 | 2025-01-06 12:37:24 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 25 |
ソースコード
#include<iostream>
#include<vector>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<queue>
#include<map>
#include<iomanip>
bool isPrimeNum(int x ){ // 素数である場合 true を返す
if( x <= 1 ){ // 1以下である場合は素数でないことがすぐにわかる
return false;
}
// sqrt( double型 ) は引数の平方根を double型で返すので、int型でキャスト
int n = (int)sqrt( (double)x );
for( int i = 2; i <= n; i++ ){
if( x % i == 0 ){ // 割り切る整数がある場合、即判定終了
return false;
}
}
return true; // 割り切る整数がない場合、素数である
}
using namespace std;
int main(void){
int x,y;
int a,b;
cin>>x>>y;
a=x;
b=y;
if(isPrimeNum(x)==true && isPrimeNum(y)==true){
std::cout<<"Second"<<std::endl;
return 0;
}
while(true){
a++;
if(isPrimeNum(a)==true)break;
}
while(true){
b++;
if(isPrimeNum(b)==true)break;
}
if((a-x)%2==0 && (b-y)%2==0)std::cout<<"Second"<<std::endl;
else if(isPrimeNum(x)==true && a-x==1)std::cout<<"Second"<<std::endl;
else if(isPrimeNum(y)==true && b-y==1)std::cout<<"Second"<<std::endl;
else if((a-x)%2==0 || (b-y)%2==0)std::cout<<"First"<<std::endl;
else std::cout<<"Second"<<std::endl;
}
takayuki