QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#153048#4218. Hidden Graphnhuang685AC ✓316ms4064kbC++204.5kb2023-08-29 10:01:472023-08-29 10:01:48

Judging History

你现在查看的是最新测评结果

  • [2023-08-29 10:01:48]
  • 评测
  • 测评结果:AC
  • 用时:316ms
  • 内存:4064kb
  • [2023-08-29 10:01:47]
  • 提交

answer

/**
 * @file qoj4218-1.cpp
 * @author n685
 * @brief
 * @date 2023-08-26
 *
 *
 */
#include <bits/stdc++.h>

#ifdef LOCAL
using std::cerr;
using std::cin;
using std::cout;
#else
using std::cin;
using std::cout;
#define cerr                                                                   \
  if (false)                                                                   \
  std::cerr
#endif

#ifdef LOCAL
#include "dd/debug.h"
#define dbg(...) lineInfo(__LINE__, #__VA_ARGS__), dbg1(__VA_ARGS__)
#define dbgR(...) lineInfo(__LINE__, #__VA_ARGS__), dbg2(__VA_ARGS__)
#define dbgP(p, ...)                                                           \
  lineInfo(__LINE__, #__VA_ARGS__ " proj"), dbg3(p, __VA_ARGS__)
#define dbgRP(p, ...)                                                          \
  lineInfo(__LINE__, #__VA_ARGS__ " proj"), dbg4(p, __VA_ARGS__)
void nline() { cerr << '\n'; }
#else
#define dbg(...) 42
#define dbgR(...) 4242
#define dbgP(...) 420
#define dbgRP(...) 420420
void nline() {}
#endif

std::pair<int, int> query(int v, const std::vector<int> &s,
                          const std::vector<bool> &vis) {
  // cout << "? " << 1 + (int)s.size() << ' ';
  int num = 1;
  for (int i : s)
    if (!vis[i])
      num++;
  cout << "? " << num << ' ';
  for (int i : s)
    if (!vis[i])
      cout << i + 1 << ' ';
  cout << v + 1 << std::endl;

  int a, b;
  cin >> a >> b;
  if (a != -1)
    a--, b--;
  return {a, b};
}

template <class T> struct Seg {
  static const T ID;
  T comb(T a, T b) {
    if (a == ID)
      return b;
    else if (b == ID)
      return a;
    else
      return (deg[a] < deg[b]) ? a : b;
  }
  int sz = 0;
  std::vector<T> &deg;
  std::vector<T> val;

  Seg(std::vector<T> &v) : deg(v) {
    sz = (int)v.size();
    val.resize(2 * sz);
    std::iota(val.begin() + sz, val.end(), 0);
    build();
  }
  void build() {
    for (int i = sz - 1; i >= 1; --i)
      val[i] = comb(val[2 * i], val[2 * i + 1]);
  }
  void upd(int ind) {
    // f(val[ind += sz]);
    deg[ind]--;
    ind += sz;
    for (ind /= 2; ind >= 1; ind /= 2)
      val[ind] = comb(val[2 * ind], val[2 * ind + 1]);
  }
  void set(int ind) {
    deg[ind] = (int)1e9;
    ind += sz;
    for (ind /= 2; ind >= 1; ind /= 2)
      val[ind] = comb(val[2 * ind], val[2 * ind + 1]);
  }
  T query() { return val[1]; }
};
template <class T> const T Seg<T>::ID = -1;

int main() {
#ifdef LOCAL

#else
  // cin.tie(nullptr)->sync_with_stdio(false);
  std::ios::sync_with_stdio(false);
#endif

  int n;
  cin >> n;

  std::vector<std::vector<int>> v;
  v.push_back({0});
  std::vector<std::pair<int, int>> ans;
  std::vector<std::vector<int>> adj(n);

  for (int i = 1; i < n; ++i) {
    int ind = -1;
    v.clear();
    std::vector<bool> vis(n);
    {
      std::vector<int> deg(i);
      std::transform(adj.begin(), adj.begin() + i, deg.begin(),
                     [](const auto &a) { return (int)a.size(); });
      Seg<int> seg(deg);
      std::vector<int> seq;
      for (int j = 0; j < i; ++j) {
        int node = seg.query();
        for (int k : adj[node])
          seg.upd(k);
        seg.set(node);
        seq.push_back(node);
      }
      std::vector<int> c(i, -1);
      for (int j : seq | std::views::reverse) {
        int cc = 0;
        std::vector<bool> freq(adj[j].size() + 1);
        for (int k : adj[j]) {
          if (c[k] == -1)
            continue;
          if (c[k] <= adj[j].size())
            freq[c[k]] = true;
        }
        for (int k = 0; k <= (int)adj[j].size(); ++k) {
          if (!freq[k]) {
            c[j] = k;
            if ((int)v.size() <= k)
              v.resize(k + 1);
            v[k].push_back(j);
            break;
          }
        }
      }
    }
    for (int j = 0; j < (int)v.size(); ++j) {
      std::vector<int> s = v[j];
      // auto [a, b] = query(i, s);
      int a, b;
      std::tie(a, b) = query(i, s, vis);
      if (a == -1)
        ind = j;
      while (a != -1) {
        if (a > b)
          std::swap(a, b);
        assert(b == i);
        ans.emplace_back(a, b);
        adj[a].push_back(b);
        adj[b].push_back(a);
        // s.erase(a);
        vis[a] = true;
        std::tie(a, b) = query(i, s, vis);
      }
    }
    if (ind == -1)
      v.push_back({i});
    else
      v[ind].push_back(i);
    dbg(v);
  }
  cout << "! " << (int)ans.size() << std::endl;
  for (auto [a, b] : ans)
    cout << a + 1 << ' ' << b + 1 << std::endl;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 3672kb

input:

3
1 2
-1 -1
1 3
-1 -1
2 3
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
? 1 3
! 3
1 2
1 3
2 3

result:

ok correct

Test #2:

score: 0
Accepted
time: 1ms
memory: 3644kb

input:

10
1 2
-1 -1
1 3
-1 -1
-1 -1
-1 -1
1 4
-1 -1
-1 -1
2 5
4 5
-1 -1
2 6
-1 -1
-1 -1
3 7
-1 -1
-1 -1
3 8
4 8
-1 -1
-1 -1
-1 -1
3 9
-1 -1
-1 -1
4 10
3 10
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
? 3 2 3 4
? 2 1 4
? 1 4
? 2 1 5
? 4 2 3 4 5
? 3 3 4 5
? 2 3 5
? 4 4 2 3 6
? 3 4 3 6
? 3 5 1 6
? 4 4 2 3 7
? 3 4 2 7
? 4 5 1 6 7
? 4 2 4 3 8
? 3 2 4 8
? 2 2 8
? 5 5 1 6 7 8
? 6 1 5 8 6 7 9
? 4 2 4 3 9
? 3 2 4 9
? 7 8 1 5 9 6 7 10
? 4 3 4 2 10
? 3 3 2 10
? 2 2 10
! ...

result:

ok correct

Test #3:

score: 0
Accepted
time: 2ms
memory: 3644kb

input:

5
2 1
-1 -1
3 1
-1 -1
3 2
-1 -1
4 2
-1 -1
-1 -1
4 1
-1 -1
5 1
-1 -1
5 2
-1 -1
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
? 1 3
? 2 2 4
? 1 4
? 2 3 4
? 2 1 4
? 1 4
? 2 1 5
? 1 5
? 2 2 5
? 1 5
? 3 3 4 5
! 7
1 2
1 3
2 3
2 4
1 4
1 5
2 5

result:

ok correct

Test #4:

score: 0
Accepted
time: 1ms
memory: 3644kb

input:

3
2 1
-1 -1
1 3
-1 -1
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
! 2
1 2
1 3

result:

ok correct

Test #5:

score: 0
Accepted
time: 2ms
memory: 3612kb

input:

6
1 2
-1 -1
3 1
-1 -1
3 2
-1 -1
4 2
-1 -1
3 4
-1 -1
-1 -1
4 5
-1 -1
2 5
-1 -1
3 5
-1 -1
-1 -1
-1 -1
-1 -1
3 6
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
? 1 3
? 2 2 4
? 1 4
? 2 3 4
? 1 4
? 2 1 4
? 3 1 4 5
? 2 1 5
? 2 2 5
? 1 5
? 2 3 5
? 1 5
? 3 4 1 6
? 2 5 6
? 2 2 6
? 2 3 6
? 1 6
! 9
1 2
1 3
2 3
2 4
3 4
4 5
2 5
3 5
3 6

result:

ok correct

Test #6:

score: 0
Accepted
time: 5ms
memory: 3872kb

input:

27
-1 -1
3 1
3 2
-1 -1
-1 -1
-1 -1
2 5
1 5
-1 -1
3 5
-1 -1
-1 -1
6 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 8
-1 -1
6 8
-1 -1
-1 -1
1 9
-1 -1
-1 -1
-1 -1
-1 -1
10 8
-1 -1
-1 -1
4 11
1 11
-1 -1
-1 -1
6 11
5 11
-1 -1
5 12
-1 -1
12 11
-1 -1
-1 -1
10 13
5 13
6 13
-1 -1
8 13
-1 -1
-1 -1
6 14
14 5
-1 -1
14 8
-1 ...

output:

? 2 1 2
? 3 1 2 3
? 2 2 3
? 1 3
? 3 2 1 4
? 2 3 4
? 4 1 2 4 5
? 3 1 4 5
? 2 4 5
? 2 3 5
? 1 5
? 3 5 4 6
? 3 1 2 6
? 2 2 6
? 2 3 6
? 4 3 6 4 7
? 2 5 7
? 3 1 2 7
? 5 2 1 4 7 8
? 4 2 4 7 8
? 3 3 6 8
? 2 3 8
? 2 5 8
? 5 1 2 4 7 9
? 4 2 4 7 9
? 3 3 6 9
? 3 5 8 9
? 5 1 2 4 7 10
? 4 3 8 9 10
? 3 3 9 10
? 3...

result:

ok correct

Test #7:

score: 0
Accepted
time: 4ms
memory: 3632kb

input:

47
-1 -1
-1 -1
-1 -1
5 4
5 3
-1 -1
-1 -1
-1 -1
7 6
-1 -1
7 5
-1 -1
-1 -1
5 8
-1 -1
9 4
-1 -1
-1 -1
10 7
-1 -1
-1 -1
7 11
11 1
-1 -1
-1 -1
11 12
2 12
5 12
-1 -1
7 12
12 3
-1 -1
13 5
13 11
-1 -1
13 7
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
4 15
-1 -1
13 15
-1 -1
-1 -1
16 1
-1 -1
-1 -1
17 16
-1 -1
17 7
17 ...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 4 1 2 3 5
? 3 1 2 5
? 5 4 3 1 2 6
? 2 5 6
? 6 3 4 6 1 2 7
? 5 3 4 1 2 7
? 2 5 7
? 1 7
? 6 3 4 7 2 1 8
? 3 5 6 8
? 2 6 8
? 7 3 4 7 8 1 2 9
? 6 3 7 8 1 2 9
? 3 5 6 9
? 7 8 4 3 7 1 2 10
? 6 8 4 3 1 2 10
? 4 5 9 6 10
? 7 7 8 4 3 1 2 11
? 6 8 4 3 1 2 11
? 5 8...

result:

ok correct

Test #8:

score: 0
Accepted
time: 9ms
memory: 3592kb

input:

38
-1 -1
-1 -1
4 1
-1 -1
1 5
3 5
-1 -1
4 5
-1 -1
4 6
-1 -1
-1 -1
-1 -1
2 7
4 7
-1 -1
6 7
7 5
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
4 10
-1 -1
-1 -1
11 1
-1 -1
11 4
-1 -1
-1 -1
12 8
11 12
-1 -1
12 7
-1 -1
-1 -1
11 13
13 8
-1 -1
13 1
-1 -1
13 12
4 13
-1 -1
3 14
-1 -1
14 5
11 14
6 14
-1...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 3 2 3 4
? 4 1 2 3 5
? 3 2 3 5
? 2 2 5
? 2 4 5
? 1 5
? 4 4 3 2 6
? 3 3 2 6
? 2 5 6
? 2 1 6
? 4 4 3 2 7
? 3 4 3 7
? 2 3 7
? 3 5 6 7
? 2 5 7
? 1 7
? 2 1 7
? 4 4 2 3 8
? 3 5 6 8
? 3 7 1 8
? 5 1 7 3 8 9
? 3 4 2 9
? 3 5 6 9
? 6 1 7 3 8 9 10
? 3 4 2 10
? 2 2 10
? 3 5 6 10
? ...

result:

ok correct

Test #9:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

25
-1 -1
-1 -1
-1 -1
5 4
5 2
-1 -1
6 4
-1 -1
-1 -1
7 3
-1 -1
5 7
-1 -1
4 8
2 8
-1 -1
5 8
-1 -1
9 4
2 9
-1 -1
-1 -1
9 8
-1 -1
-1 -1
10 3
-1 -1
-1 -1
10 11
-1 -1
9 11
-1 -1
2 11
-1 -1
6 12
-1 -1
-1 -1
12 4
-1 -1
5 13
6 13
-1 -1
7 13
13 8
-1 -1
-1 -1
14 4
14 13
-1 -1
5 14
14 3
-1 -1
7 14
-1 -1
-1 -1
10...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 4 1 2 3 5
? 3 1 3 5
? 5 4 2 1 3 6
? 4 2 1 3 6
? 2 5 6
? 5 4 2 3 1 7
? 4 4 2 1 7
? 3 5 6 7
? 2 6 7
? 5 2 7 4 1 8
? 4 2 7 1 8
? 3 7 1 8
? 4 5 3 6 8
? 3 3 6 8
? 5 2 4 7 1 9
? 4 2 7 1 9
? 3 7 1 9
? 4 5 3 6 9
? 2 8 9
? 1 9
? 5 8 7 6 1 10
? 4 9 5 3 10
? 3 9 5 ...

result:

ok correct

Test #10:

score: 0
Accepted
time: 1ms
memory: 3616kb

input:

6
-1 -1
2 3
-1 -1
-1 -1
-1 -1
2 5
-1 -1
-1 -1
5 6
-1 -1
-1 -1

output:

? 2 1 2
? 3 1 2 3
? 2 1 3
? 3 2 1 4
? 2 3 4
? 4 2 1 4 5
? 3 1 4 5
? 2 3 5
? 5 5 3 4 1 6
? 4 3 4 1 6
? 2 2 6
! 3
2 3
2 5
5 6

result:

ok correct

Test #11:

score: 0
Accepted
time: 1ms
memory: 3800kb

input:

3
2 1
-1 -1
3 1
-1 -1
2 3
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
? 1 3
! 3
1 2
1 3
2 3

result:

ok correct

Test #12:

score: 0
Accepted
time: 1ms
memory: 3572kb

input:

3
2 1
-1 -1
3 1
-1 -1
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
! 2
1 2
1 3

result:

ok correct

Test #13:

score: 0
Accepted
time: 0ms
memory: 3644kb

input:

5
2 1
-1 -1
3 1
-1 -1
2 3
-1 -1
-1 -1
-1 -1
-1 -1
5 1
-1 -1
2 5
-1 -1
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 1 3
? 2 2 3
? 1 3
? 2 2 4
? 2 3 4
? 2 1 4
? 3 1 4 5
? 2 4 5
? 2 2 5
? 1 5
? 2 3 5
! 5
1 2
1 3
2 3
1 5
2 5

result:

ok correct

Test #14:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

3
2 1
-1 -1
-1 -1
-1 -1

output:

? 2 1 2
? 1 2
? 2 1 3
? 2 2 3
! 1
1 2

result:

ok correct

Test #15:

score: 0
Accepted
time: 1ms
memory: 3564kb

input:

5
-1 -1
-1 -1
4 3
-1 -1
2 5
3 5
-1 -1
-1 -1

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 3 2 1 4
? 4 3 1 2 5
? 3 3 1 5
? 2 1 5
? 2 4 5
! 3
3 4
2 5
3 5

result:

ok correct

Test #16:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

93
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
10 9
-1 -1
7 11
-1 -1
-1 -1
2 12
-1 -1
-1 -1
5 13
-1 -1
-1 -1
-1 -1
-1 -1
15 12
-1 -1
-1 -1
6 16
8 16
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
19 18
-1 -1
11 19
-1 -1
20 16
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 23
-1 -1
8 23
-1 -1
-1 -1
-1 -1
-1 -1
1 25
...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 9 8 1 2 3 4 5 6 7 10
? 10 9 7 8 1 2 3 4 5 6 11
? 9 9 8 1 2 3 4 5 6 11
? 2 10 11
? 10 9 7 6 8 1 2 3 4 5 12
? 9 9 7 6 8 1 3 4 5 12
? 3 10 11 12
? 10 9 7 1...

result:

ok correct

Test #17:

score: 0
Accepted
time: 10ms
memory: 3924kb

input:

111
-1 -1
-1 -1
-1 -1
-1 -1
2 6
-1 -1
7 4
-1 -1
-1 -1
3 8
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
2 11
-1 -1
4 11
-1 -1
6 12
7 12
12 11
-1 -1
12 4
-1 -1
7 13
13 10
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
17 10
-1 -1
-1 -1
4 18
18 5
-1 -1
-1 -1
-1 -1
16 19
-1 -1
11 1...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 5 4 5 1 3 6
? 6 6 3 4 5 1 7
? 5 6 3 5 1 7
? 2 2 7
? 6 2 4 3 5 1 8
? 5 2 4 5 1 8
? 3 6 7 8
? 6 2 4 3 1 5 9
? 4 6 7 8 9
? 7 8 2 4 9 1 5 10
? 4 3 6 7 10
? 8 8 7 2 9 10 1 5 11
? 7 8 7 9 10 1 5 11
? 4 3 4 6 11
? 3 3 6 11
? 9 6 11 7 8 9 10 1 5 ...

result:

ok correct

Test #18:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

132
-1 -1
3 1
-1 -1
-1 -1
-1 -1
5 1
-1 -1
-1 -1
6 3
-1 -1
-1 -1
7 2
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
10 8
-1 -1
5 10
-1 -1
-1 -1
-1 -1
-1 -1
12 8
-1 -1
9 13
-1 -1
-1 -1
-1 -1
2 14
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
17 15
-1 -1
-1 -1
-1 -1
-1 -1
19 10
19 6
-1 -1
17 19
-1 -1
-1 -1
-1 -1
21 20
-1 -1
-1 -...

output:

? 2 1 2
? 3 1 2 3
? 2 2 3
? 3 3 2 4
? 2 1 4
? 4 1 2 4 5
? 3 2 4 5
? 2 3 5
? 5 5 3 4 2 6
? 4 5 4 2 6
? 2 1 6
? 5 3 5 4 2 7
? 4 3 5 4 7
? 3 1 6 7
? 5 3 5 2 4 8
? 4 1 6 7 8
? 6 1 6 2 4 8 9
? 4 3 5 7 9
? 7 1 6 2 8 9 4 10
? 6 1 6 2 9 4 10
? 4 3 5 7 10
? 3 3 7 10
? 7 8 5 7 3 9 4 11
? 5 10 1 2 6 11
? 8 6 1...

result:

ok correct

Test #19:

score: 0
Accepted
time: 11ms
memory: 3848kb

input:

94
-1 -1
3 2
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
2 7
-1 -1
-1 -1
-1 -1
2 9
-1 -1
7 9
-1 -1
-1 -1
-1 -1
-1 -1
11 6
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
6 13
-1 -1
11 13
-1 -1
-1 -1
14 10
-1 -1
14 11
-1 -1
-1 -1
-1 -1
15 11
-1 -1
-1 -1
15 16
-1 -1
16 7
-1 -1
-1 -1
17 8
-1 -1
17 11
17 10
-1 ...

output:

? 2 1 2
? 3 1 2 3
? 2 1 3
? 3 2 1 4
? 2 3 4
? 4 2 1 4 5
? 2 3 5
? 5 2 4 5 1 6
? 2 3 6
? 6 3 4 5 6 1 7
? 2 2 7
? 1 7
? 6 2 4 5 6 1 8
? 3 3 7 8
? 7 2 1 4 5 6 8 9
? 6 1 4 5 6 8 9
? 3 3 7 9
? 2 3 9
? 8 9 3 8 1 4 5 6 10
? 2 2 10
? 2 7 10
? 9 7 3 8 10 1 4 5 6 11
? 8 7 3 8 10 1 4 5 11
? 2 9 11
? 2 2 11
? 9...

result:

ok correct

Test #20:

score: 0
Accepted
time: 4ms
memory: 3672kb

input:

73
-1 -1
1 3
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
5 7
6 7
-1 -1
-1 -1
3 8
-1 -1
-1 -1
1 9
9 8
-1 -1
-1 -1
4 10
1 10
-1 -1
3 10
9 10
-1 -1
4 11
-1 -1
-1 -1
-1 -1
12 9
12 3
-1 -1
12 10
-1 -1
-1 -1
13 6
-1 -1
13 11
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
15 8
-1 -1
-1 -1
16 14
3 16
-1 -1
10 16
-1 -1
1...

output:

? 2 1 2
? 3 1 2 3
? 2 2 3
? 3 3 2 4
? 2 1 4
? 4 1 2 4 5
? 2 3 5
? 5 1 4 5 2 6
? 2 3 6
? 6 3 4 5 6 2 7
? 5 3 4 6 2 7
? 4 3 4 2 7
? 2 1 7
? 6 5 6 3 2 4 8
? 5 5 6 2 4 8
? 3 7 1 8
? 7 1 5 6 8 2 4 9
? 6 5 6 8 2 4 9
? 5 5 6 2 4 9
? 3 3 7 9
? 7 8 1 5 6 2 4 10
? 6 8 1 5 6 2 10
? 5 8 5 6 2 10
? 4 9 3 7 10
? ...

result:

ok correct

Test #21:

score: 0
Accepted
time: 3ms
memory: 3896kb

input:

77
-1 -1
3 2
-1 -1
2 4
-1 -1
-1 -1
-1 -1
-1 -1
3 6
-1 -1
-1 -1
3 7
-1 -1
-1 -1
-1 -1
3 8
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 11
-1 -1
-1 -1
-1 -1
-1 -1
8 13
-1 -1
-1 -1
-1 -1
2 14
14 8
14 7
-1 -1
3 15
-1 -1
15 8
2 15
-1 -1
2 16
16 8
-1 -1
16 1
-1 -1
16 15
-1 -1
7 17
2 17
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1...

output:

? 2 1 2
? 3 1 2 3
? 2 1 3
? 3 2 1 4
? 2 1 4
? 2 3 4
? 3 2 1 5
? 3 3 4 5
? 5 4 3 5 1 6
? 4 4 5 1 6
? 2 2 6
? 5 3 4 5 1 7
? 4 4 5 1 7
? 3 2 6 7
? 6 2 6 7 5 1 8
? 3 3 4 8
? 2 4 8
? 7 2 6 7 8 1 5 9
? 3 3 4 9
? 8 8 2 6 7 9 1 5 10
? 3 3 4 10
? 9 7 8 2 6 9 10 1 5 11
? 8 7 8 2 6 9 10 5 11
? 3 3 4 11
? 9 6 7...

result:

ok correct

Test #22:

score: 0
Accepted
time: 4ms
memory: 3676kb

input:

81
-1 -1
2 3
-1 -1
2 4
-1 -1
-1 -1
1 5
-1 -1
4 5
-1 -1
4 6
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 8
-1 -1
-1 -1
-1 -1
10 6
2 10
-1 -1
10 3
10 4
-1 -1
-1 -1
-1 -1
4 11
11 3
-1 -1
8 12
2 12
6 12
-1 -1
-1 -1
-1 -1
-1 -1
10 13
-1 -1
-1 -1
1 14
-1 -1
-1 -1
10 14
-1 -1
13 15
-1 -1
-1 -1
-1 -1
13 16
11 16
-1 -1
1...

output:

? 2 1 2
? 3 1 2 3
? 2 1 3
? 3 2 1 4
? 2 1 4
? 2 3 4
? 3 2 1 5
? 2 2 5
? 3 3 4 5
? 2 3 5
? 4 4 1 3 6
? 3 1 3 6
? 3 5 2 6
? 4 3 4 1 7
? 4 2 5 6 7
? 5 2 5 6 7 8
? 4 3 4 1 8
? 3 3 4 8
? 5 1 4 3 7 9
? 5 5 2 6 8 9
? 7 8 5 2 6 9 7 10
? 6 8 5 2 9 7 10
? 5 8 5 9 7 10
? 4 1 4 3 10
? 3 1 4 10
? 2 1 10
? 6 10 5...

result:

ok correct

Test #23:

score: 0
Accepted
time: 0ms
memory: 3548kb

input:

93
-1 -1
-1 -1
4 1
2 4
-1 -1
-1 -1
-1 -1
4 6
-1 -1
-1 -1
-1 -1
2 7
-1 -1
1 8
3 8
-1 -1
-1 -1
9 1
-1 -1
9 8
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
13 7
-1 -1
-1 -1
-1 -1
4 14
-1 -1
9 14
-1 -1
1 14
-1 -1
-1 -1
14 15
-1 -1
-1 -1
-1 -1
13 16
-1 -1
-1 -1
17 3
17 1
2 17
17 5
-1 -1
17 ...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 3 2 3 4
? 2 3 4
? 4 1 2 3 5
? 2 4 5
? 4 4 5 3 6
? 3 5 3 6
? 3 1 2 6
? 4 4 3 5 7
? 4 6 1 2 7
? 3 6 1 7
? 6 2 6 1 3 5 8
? 5 2 6 3 5 8
? 4 2 6 5 8
? 3 4 7 8
? 6 1 2 3 6 5 9
? 5 2 3 6 5 9
? 4 4 8 7 9
? 3 4 7 9
? 5 8 4 7 5 10
? 5 9 2 3 6 10
? 2 1 10
? 6 8 4 7 10 5 11
? 5 9...

result:

ok correct

Test #24:

score: 0
Accepted
time: 8ms
memory: 3652kb

input:

37
-1 -1
3 1
-1 -1
-1 -1
-1 -1
2 5
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
7 1
2 7
-1 -1
6 8
2 8
1 8
4 8
-1 -1
7 8
-1 -1
2 9
9 1
6 9
-1 -1
-1 -1
9 8
-1 -1
3 10
10 8
-1 -1
-1 -1
1 10
-1 -1
7 11
4 11
9 11
-1 -1
3 11
11 8
-1 -1
2 11
11 1
-1 -1
12 7
-1 -1
12 8
-1 -1
-1 -1
12 1
-1 -1
-1 -1
-1 -1
6 13
12 13
-1 -1
-...

output:

? 2 1 2
? 3 1 2 3
? 2 2 3
? 3 3 2 4
? 2 1 4
? 4 1 2 4 5
? 3 1 4 5
? 2 3 5
? 4 5 1 4 6
? 3 2 3 6
? 5 3 5 4 6 7
? 3 1 2 7
? 2 2 7
? 1 7
? 5 2 1 4 6 8
? 4 2 1 4 8
? 3 1 4 8
? 2 4 8
? 1 8
? 4 7 3 5 8
? 3 3 5 8
? 5 1 2 4 6 9
? 4 1 4 6 9
? 3 4 6 9
? 2 4 9
? 4 7 3 5 9
? 2 8 9
? 1 9
? 4 8 3 5 10
? 3 8 5 10
...

result:

ok correct

Test #25:

score: 0
Accepted
time: 7ms
memory: 3692kb

input:

144
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
9 15
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
14 18
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
5 22
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 11 7 8 9 10 1 2 3 4 5 6 11
? 12 6 7 8 9 10 11 1 2 3 4 5 12
? 13 5 6 7 8 9 10 11 12 1 2 3 4 13
? 14 4 5 6 7 8 9 10 11 12 13 1 2 3 14
? 15 3 4 5 6 7 8 9 1...

result:

ok correct

Test #26:

score: 0
Accepted
time: 43ms
memory: 3648kb

input:

561
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
26 22
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 11 7 8 9 10 1 2 3 4 5 6 11
? 12 6 7 8 9 10 11 1 2 3 4 5 12
? 13 5 6 7 8 9 10 11 12 1 2 3 4 13
? 14 4 5 6 7 8 9 10 11 12 13 1 2 3 14
? 15 3 4 5 6 7 8 9 1...

result:

ok correct

Test #27:

score: 0
Accepted
time: 47ms
memory: 3968kb

input:

679
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
39 40
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 11 7 8 9 10 1 2 3 4 5 6 11
? 12 6 7 8 9 10 11 1 2 3 4 5 12
? 13 5 6 7 8 9 10 11 12 1 2 3 4 13
? 14 4 5 6 7 8 9 10 11 12 13 1 2 3 14
? 15 3 4 5 6 7 8 9 1...

result:

ok correct

Test #28:

score: 0
Accepted
time: 102ms
memory: 3840kb

input:

1000
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
17 27
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 11 7 8 9 10 1 2 3 4 5 6 11
? 12 6 7 8 9 10 11 1 2 3 4 5 12
? 13 5 6 7 8 9 10 11 12 1 2 3 4 13
? 14 4 5 6 7 8 9 10 11 12 13 1 2 3 14
? 15 3 4 5 6 7 8 9 1...

result:

ok correct

Test #29:

score: 0
Accepted
time: 105ms
memory: 3696kb

input:

1000
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
13 14
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
6 22
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 11 7 8 9 10 1 2 3 4 5 6 11
? 12 6 7 8 9 10 11 1 2 3 4 5 12
? 13 5 6 7 8 9 10 11 12 1 2 3 4 13
? 14 4 5 6 7 8 9 10 11 12 13 1 2 3 14
? 13 4 5 6 7 8 9 10 ...

result:

ok correct

Test #30:

score: 0
Accepted
time: 316ms
memory: 4064kb

input:

2000
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
44 15
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-...

output:

? 2 1 2
? 3 1 2 3
? 4 2 3 1 4
? 5 1 2 3 4 5
? 6 4 5 1 2 3 6
? 7 3 4 5 6 1 2 7
? 8 2 3 4 5 6 7 1 8
? 9 1 2 3 4 5 6 7 8 9
? 10 8 9 1 2 3 4 5 6 7 10
? 11 7 8 9 10 1 2 3 4 5 6 11
? 12 6 7 8 9 10 11 1 2 3 4 5 12
? 13 5 6 7 8 9 10 11 12 1 2 3 4 13
? 14 4 5 6 7 8 9 10 11 12 13 1 2 3 14
? 15 3 4 5 6 7 8 9 1...

result:

ok correct