結果
問題 | No.355 数当てゲーム(2) |
ユーザー |
![]() |
提出日時 | 2017-08-13 22:24:19 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 28 ms / 2,000 ms |
コード長 | 1,713 bytes |
コンパイル時間 | 1,799 ms |
コンパイル使用メモリ | 169,168 KB |
実行使用メモリ | 25,448 KB |
平均クエリ数 | 20.94 |
最終ジャッジ日時 | 2024-07-17 01:23:35 |
合計ジャッジ時間 | 5,892 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 52 |
コンパイルメッセージ
main.cpp:7:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 7 | main(){ | ^~~~
ソースコード
#include<bits/stdc++.h> typedef long long ll; using namespace std; int INF = 1e9; int MOD = 1e9+7; int flag[10];//存在する 1 存在しない -1 main(){ int pre,a,b; cout << "0 1 2 3" << endl; fflush(0); cin >> a >> b; if(a == 4)return 0; pre = a+b; for(int i = 4;i <= 9;i++){ cout <<"0 1 2 " << i << endl; fflush(0); cin >> a >> b; if(a+b == 0){ flag[0] = -1; flag[1] = -1; flag[2] = -1; flag[i] = -1; }else if(pre > a+b){ flag[i-1] = 1; flag[i] = -1; }else if(pre < a+b){ flag[i-1] = -1; flag[i] = 1; }else{ flag[i] = flag[i-1]; } pre = a+b; if(a == 4)return 0; } while(count(flag,flag+10,1) < 4){ int sum = 0; for(int i = 0,cnt = 0;i < 10 && cnt < 3;i++){ if(flag[i]){ cout << i << " "; sum += (flag[i] == 1); cnt++; } } for(int i = 0;i < 10;i++){ if(!flag[i]){ cout << i << endl; fflush(0); cin >> a >> b; if(a == 4)return 0; if(sum == a+b) flag[i] = -1; else flag[i] = 1; break; } } } int num[4]; for(int i = 0,cnt = 0;i < 10 && cnt < 4;i++){ if(flag[i] == 1){ num[cnt++] = i; } } for(int i = 0;i < 24;i++){ for(int v:num)printf("%d%c",v,v==num[3]?'\n':' '); fflush(0); cin >> a >> b; if(a == 4)return 0; next_permutation(num,num+4); } }