結果
| 問題 | No.355 数当てゲーム(2) | 
| コンテスト | |
| ユーザー |  mayoko_ | 
| 提出日時 | 2016-04-01 23:03:04 | 
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 25 ms / 2,000 ms | 
| コード長 | 1,813 bytes | 
| コンパイル時間 | 816 ms | 
| コンパイル使用メモリ | 91,224 KB | 
| 実行使用メモリ | 25,580 KB | 
| 平均クエリ数 | 36.92 | 
| 最終ジャッジ日時 | 2024-07-16 23:12:15 | 
| 合計ジャッジ時間 | 4,753 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 52 | 
ソースコード
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
//#include<cctype>
#include<climits>
#include<iostream>
#include<string>
#include<vector>
#include<map>
//#include<list>
#include<queue>
#include<deque>
#include<algorithm>
//#include<numeric>
#include<utility>
#include<complex>
//#include<memory>
#include<functional>
#include<cassert>
#include<set>
#include<stack>
const int dx[] = {1, 0, -1, 0};
const int dy[] = {0, 1, 0, -1};
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
int ans[] = {-1, -1, -1, -1};
void readXY(int& x, int& y) {
    cin >> x >> y;
    if (x==4 && y==0) exit(0);
}
bool NG(const vi& ok, int num) {
    for (int el : ok) if (num==el) return true;
    return false;
}
int main() {
    vector<int> ok;
    for (int t = 0; t < 4; t++) {
        int atLeast = 3-ok.size();
        vector<int> tmp(10);
        int maxi = 0;
        for (int num = atLeast; num < 10; num++) {
            if (NG(ok, num)) continue;
            // 確定してるやつ
            for (int el : ok) {
                cout << el << " ";
            }
            for (int i = 0; i < atLeast; i++) cout << i << " ";
            cout << num << endl;
            int x, y;
            readXY(x, y);
            tmp[num] = x+y; maxi = max(maxi, x+y);
        }
        for (int num = 9; num >= atLeast; num--) {
            if (tmp[num] == maxi) {
                ok.push_back(num);
                break;
            }
        }
    }
    sort(ok.begin(), ok.end());
    do {
        for (int i = 0; i < 4; i++) {
            cout << ok[i];
            if (i < 3) cout << " ";
        }
        cout << endl;
        int x, y;
        readXY(x, y);
    } while (next_permutation(ok.begin(), ok.end()));
    return 0;
}
            
            
            
        