結果
| 問題 |
No.2521 Don't be Same
|
| コンテスト | |
| ユーザー |
沙耶花
|
| 提出日時 | 2023-10-27 22:45:50 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 61 ms / 2,000 ms |
| コード長 | 1,519 bytes |
| コンパイル時間 | 3,568 ms |
| コンパイル使用メモリ | 251,564 KB |
| 最終ジャッジ日時 | 2025-02-17 15:34:28 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 27 |
ソースコード
#include <stdio.h>
#include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
using namespace atcoder;
using mint = modint998244353;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define Inf32 1000000001
#define Inf64 4000000000000000001
bool check(int a,int b){
if(a==b)return 1;
if(a==0||b==0)return 1;
int ret = 0;
for(int i=1;i<=a;i++){
if(check(a-i,b)==0)ret = 1;
}
for(int i=1;i<=b;i++){
if(check(a,b-i)==0)ret = 1;
}
return ret;
}
int main(){
/*
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
cout<<check(i,j);
}
cout<<endl;
}
*/
int X,Y;
cin>>X>>Y;
bool f = true;
if(abs(X-Y)==1 && min(X,Y)%2==1){
cout<<"Second"<<endl;
f = false;
}
else{
cout<<"First"<<endl;
f = true;
}
while(true){
if(f){
f = false;
if(X==Y){
cout<<"B"<<endl;
return 0;
}
if(X==0){
cout<<"A "<<2<<' '<<Y<<endl;
return 0;
}
if(Y==0){
cout<<"A "<<1<<' '<<X<<endl;
return 0;
}
if(X%2==1 && (X+1)<Y){
cout<<"A "<<2<<' '<<(Y-(X+1))<<endl;
Y = X+1;
continue;
}
if(X%2==0 && (X-1)<Y && (X-1)>0){
cout<<"A "<<2<<' '<<(Y-(X-1))<<endl;
Y = X-1;
continue;
}
if(Y%2==1 && (Y+1)<X){
cout<<"A "<<1<<' '<<(X-(Y+1))<<endl;
X= Y+1;
continue;
}
if(Y%2==0 && (Y-1)<X && (Y-1)>0){
cout<<"A "<<1<<' '<<(X-(Y-1))<<endl;
X = Y-1;
continue;
}
}
else{
char c;
cin>>c;
int ii,xx;
cin>>ii>>xx;
if(ii==1)X -= xx;
else Y -= xx;
f = true;
}
}
return 0;
}
沙耶花