結果
| 問題 |
No.3120 Lower Nim
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-04-20 12:45:08 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 229 ms / 2,000 ms |
| コード長 | 822 bytes |
| コンパイル時間 | 6,979 ms |
| コンパイル使用メモリ | 355,388 KB |
| 実行使用メモリ | 25,972 KB |
| 平均クエリ数 | 2685.91 |
| 最終ジャッジ日時 | 2025-04-20 12:45:25 |
| 合計ジャッジ時間 | 14,839 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 43 |
ソースコード
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using namespace atcoder;
using ll=long long;
using mint=modint998244353;
const ll inf=(1e9+7)*(1e9+7);
int dx[4]={1,0,0,-1},dy[4]={0,1,-1,0};
const int mod=998244353;
using P=pair<ll,int>;
int main(){
int n,a[10000];
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int x=0;
for(int i=0;i<n;i++)
x^=a[i];
bool f=x>0;
cout<<(f?"First":"Second")<<endl;
for(int i=0;;i++){
int j,v,ret;
if(i%2==f){
cin>>j>>v,j--;
x^=a[j];
a[j]-=v;
x^=a[j];
cin>>ret;
}else{
v=1<<__builtin_ctz(x);
for(int k=0;k<n;k++){
if(a[k]>=v){
j=k;
break;
}
}
x^=a[j];
a[j]-=v;
x^=a[j];
cout<<j+1<<' '<<v<<endl;
cin>>ret;
}
if(ret!=0)
return 0;
}
}