結果
問題 | No.355 数当てゲーム(2) |
ユーザー |
|
提出日時 | 2016-06-20 16:40:08 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 28 ms / 2,000 ms |
コード長 | 1,598 bytes |
コンパイル時間 | 1,860 ms |
コンパイル使用メモリ | 172,012 KB |
実行使用メモリ | 25,488 KB |
平均クエリ数 | 24.81 |
最終ジャッジ日時 | 2024-07-16 23:59:57 |
合計ジャッジ時間 | 6,448 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 52 |
ソースコード
#include "bits/stdc++.h"using namespace std;#define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i))#define rep(i,j) FOR(i,0,j)#define each(x,y) for(auto &(x):(y))#define mp make_pair#define all(x) (x).begin(),(x).end()#define debug(x) cout<<#x<<": "<<(x)<<endl#define smax(x,y) (x)=max((x),(y))#define smin(x,y) (x)=min((x),(y))#define MEM(x,y) memset((x),(y),sizeof (x))#define sz(x) (int)(x).size()typedef long long ll;typedef pair<int, int> pii;typedef vector<int> vi;typedef vector<ll> vll;int main(){vi ans(4);ans[0] = 0, ans[1] = 1, ans[2] = 2, ans[3] = 3;int hit = -1, x, y;printf("%d %d %d %d\n", ans[0], ans[1], ans[2], ans[3]);fflush(stdout);scanf("%d %d", &x, &y);if(x == 4)return 0;hit = x + y;rep(i, 4){rep(j, 10){int uni = 1;rep(k, 4)if(i!=k && j == ans[k])uni = 0;if(uni){int tmp = ans[i];ans[i] = j;printf("%d %d %d %d\n", ans[0], ans[1], ans[2], ans[3]);fflush(stdout);scanf("%d %d", &x, &y);if(x == 4)return 0;if(x + y > hit){hit = x + y;break;} else if(x + y < hit){ans[i] = tmp;break;}}}}sort(all(ans));do{printf("%d %d %d %d\n", ans[0], ans[1], ans[2], ans[3]);fflush(stdout);scanf("%d %d", &x, &y);if(x == 4)break;} while(next_permutation(all(ans)));}