Kevin_Zhang

Untitled

Jun 18th, 2020
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define pb emplace_back
  3. using namespace std;
  4. using ll = long long;
  5. const int maxn = 10;
  6. void done() {
  7.     cout << "done" << endl;
  8.     exit(0);
  9. }
  10. int mv[maxn];
  11. vector<vector<int>> ask(vector<int> a) {
  12.     cout << "next ";
  13.     for (int i : a) cout << i << ' ', ++mv[i];
  14.     cout << endl;
  15.     int k;
  16.     cin >> k;
  17.     vector<vector<int>> res(k);
  18.     for (int i = 0;i < k;++i) {
  19.         string tmp;
  20.         cin >> tmp;
  21.         for (auto j : tmp) res[i].pb(j-'0');
  22.     }
  23.     return res;
  24. }
  25. // [, )
  26. vector<int> range(int l, int r) {
  27.     vector<int> res(r-l);
  28.     iota(res.begin(), res.end(), l);
  29.     return res;
  30. }
  31. int x;
  32. void get_x() {
  33.     auto advance = [&](int b) {
  34.         while (mv[b] != 1<<b) {
  35.             auto vv = ask(range(b, 10));
  36.             if (vv.size() != b+1) {
  37.                 for (auto vec : vv) if (vec.size() != 1)
  38.                     return *min_element(vec.begin(), vec.end());
  39.             }
  40.         }
  41.         return -1;
  42.     };
  43.     for (int i = 0;i < 10;++i) {
  44.         int v = advance(i);
  45.         if (~v) {
  46.             x = mv[i] - mv[v];
  47.             break;
  48.         }
  49.     }
  50. }
  51. signed main(){
  52.     ios_base::sync_with_stdio(0), cin.tie(0);
  53.     ask(range(0, 10));
  54.     get_x();
  55.    
  56. }
Advertisement
Add Comment
Please, Sign In to add comment