File size: 1,032 Bytes
14c9c2b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  long long k;
  cin >> n >> k;
  vector<vector<long long>> mat(n+1, vector<long long>(n+1, -1LL));
  auto get_val = [&](int r, int c) -> long long {
    if (mat[r][c] != -1) return mat[r][c];
    cout << "QUERY " << r << " " << c << endl;
    cout.flush();
    long long v;
    cin >> v;
    mat[r][c] = v;
    return v;
  };
  auto count_leq = [&](long long x) -> long long {
    long long cnt = 0;
    int row = 1;
    int colu = n;
    while (row <= n && colu >= 1) {
      long long val = get_val(row, colu);
      if (val <= x) {
        cnt += colu;
        row++;
      } else {
        colu--;
      }
    }
    return cnt;
  };
  long long lo = 0;
  long long hi = 1000000000000000001LL;
  while (lo < hi) {
    long long mid = lo + (hi - lo) / 2;
    if (count_leq(mid) >= k) {
      hi = mid;
    } else {
      lo = mid + 1;
    }
  }
  cout << "DONE " << lo << endl;
  cout.flush();
  return 0;
}