結果
| 問題 |
No.2165 Let's Play Nim!
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-12-16 03:33:35 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 192 ms / 2,000 ms |
| コード長 | 2,145 bytes |
| コンパイル時間 | 823 ms |
| コンパイル使用メモリ | 93,540 KB |
| 実行使用メモリ | 25,580 KB |
| 平均クエリ数 | 863.56 |
| 最終ジャッジ日時 | 2024-11-15 07:55:23 |
| 合計ジャッジ時間 | 16,423 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 35 TLE * 3 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:127:24: warning: 'q' may be used uninitialized [-Wmaybe-uninitialized]
127 | x=x^a[q];
| ~~~^
main.cpp:118:21: note: 'q' was declared here
118 | int q;
| ^
main.cpp:110:21: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized]
110 | int p;
| ^
main.cpp:70:16: warning: 'q' may be used uninitialized [-Wmaybe-uninitialized]
70 | x=x^a[q];
| ~~~^
main.cpp:61:13: note: 'q' was declared here
61 | int q;
| ^
main.cpp:53:13: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized]
53 | int p;
| ^
ソースコード
#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<vector>
#include<deque>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<algorithm>
#include<functional>
#include<utility>
#include<bitset>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<cstdio>
using namespace std;
#define REP(i,n) for(int i=0;i<int(n);i++)
#define foreach(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++)
typedef long long ll;
typedef pair<int,int> P;
int a[80000];
int main(void){
int i,j;
cin.tie(0);
ios_base::sync_with_stdio(false);
int n,x=0;
cin >> n;
for (i=1;i<=n;i++){
cin >>a[i];
x^=a[i];
}
int t;
if(x!=0) t=1;
else t=0;
cout << t << endl;
cout.flush();
if(t==1){
while(1){
int p;
for(j=14;j>=0;j--){
if(x & (1<<j)){
p=j;
break;
}
}
int q;
for(i=1;i<=n;i++){
if(a[i] & (1<<p)){
q=i;
break;
}
}
int s=x;
x=x^a[q];
int k=a[q]-(a[q]^s);
a[q]=s^a[q];
x=x^a[q];
cout << q << ' ' << k << endl;
cout.flush();
int r;
cin >> r;
if(r==-1) return 0;
int c,d;
cin >> c >> d;
x=x^a[c];
a[c]=a[c]-d;
x=x^a[c];
cin >> r;
if(r==-1) return 0;
}
}else{
while(1){
int c,d;
cin >> c >> d;
x=x^a[c];
a[c]=a[c]-d;
x=x^a[c];
int r;
cin >> r;
if(r==-1) return 0;
int p;
for(j=14;j>=0;j--){
if(x & (1<<j)){
p=j;
break;
}
}
int q;
for(i=1;i<=n;i++){
if(a[i] & (1<<p)){
q=i;
break;
}
}
int s=x;
x=x^a[q];
int k=a[q]-(a[q]^s);
a[q]=s^a[q];
x=x^a[q];
cout << q << ' ' << k << endl;
cout.flush();
cin >> r;
if(r==-1) return 0;
}
}
return 0;
}