Advertisement
pb_jiang

g2

Jun 15th, 2023
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <assert.h>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. #ifdef __DEBUG__
  5. #include "dbg.h"
  6. #else
  7. #define dbg(...) 42
  8. #endif
  9. template <class T> using mpq = priority_queue<T, vector<T>, greater<T>>;
  10.  
  11. using ll = long long;
  12. using pii = pair<int, int>;
  13. using pll = pair<ll, ll>;
  14. using vl = vector<ll>;
  15. using vi = vector<int>;
  16.  
  17. mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  18.  
  19. int get_rdn() { return rng() % int(1e6 + 3); }
  20.  
  21. int main(int argc, char **argv)
  22. {
  23.     int x, m = 0;
  24.     scanf("%d", &m);
  25.     dbg(m);
  26.     for (int i = 0; i < 300; ++i) {
  27.         int roll = get_rdn();
  28.         printf("+ %d\n", roll), fflush(stdout);
  29.         scanf("%d", &x);
  30.         m = max(m, x);
  31.     }
  32.     dbg(m);
  33.     map<int, int> cnt;
  34.     int offset = 0;
  35.     for (int i = 0; i < 340; ++i) {
  36.         printf("+ 1\n"), fflush(stdout);
  37.         scanf("%d", &x);
  38.         if (cnt.count(x)) {
  39.             printf("! %d\n", offset), fflush(stdout);
  40.             return 0;
  41.         }
  42.         cnt[x] = offset++;
  43.     }
  44.     dbg(offset);
  45.     printf("+ %d\n", m - 340), fflush(stdout);
  46.     scanf("%d", &x);
  47.     offset = 0;
  48.     for (int i = 0; i < 340; ++i) {
  49.         printf("+ 340\n"), fflush(stdout);
  50.         scanf("%d", &x);
  51.         if (cnt.count(x)) {
  52.             dbg(offset + m + 339 - cnt[x]);
  53.             printf("! %d\n", offset + m + 339 - cnt[x]), fflush(stdout);
  54.             return 0;
  55.         }
  56.         offset += 340;
  57.     }
  58.     return 0;
  59. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement