QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#305757#6668. TrokutiHuasushis0 21ms3776kbC++142.7kb2024-01-15 23:23:372024-01-15 23:23:38

Judging History

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

  • [2024-01-15 23:23:38]
  • 评测
  • 测评结果:0
  • 用时:21ms
  • 内存:3776kb
  • [2024-01-15 23:23:37]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int n = 100;
int a[110][110];
int fc[15];
int tmp[6][6], tot;
int fa[210];
int getfa(int v) {
  return v == fa[v] ? v : fa[v] = getfa(fa[v]);
}
int main() {
  ios::sync_with_stdio(false);
  for (int i = 1; i <= 5; ++i) {
    for (int j = i + 1; j <= 5; ++j) {
      tmp[i][j] = ++tot;
    }
  }
  tot = 0;
  for (int i = 1; i <= 5; ++i) {
    for (int j = i + 1; j <= 5; ++j) {
      for (int k = j + 1; k <= 5; ++k) {
        ++tot;
        cout << "? " << i << ' ' << j << ' ' << k << endl;
        int bs = 0;
        cin >> bs;
        fc[tot] = bs;
      }
    }
  }
  for (int mj = 0; mj < (1 << 10); ++mj) {
    int ls[11];
    for (int j = 1; j <= 10; ++j) ls[j] = (mj >> (j - 1)) & 1;
    tot = 0;
    for (int i = 1; i <= 5; ++i) {
      for (int j = i + 1; j <= 5; ++j) {
        for (int k = j + 1; k <= 5; ++k) {
          ++tot;
          if (ls[tmp[i][j]] + ls[tmp[i][k]] + ls[tmp[j][k]] != fc[tot]) goto nxt;
        }
      }
    }
    for (int i = 1; i <= 5; ++i) {
      for (int j = i + 1; j <= 5; ++j) {
        a[i][j] = ls[tmp[i][j]];
        a[j][i] = a[i][j];
      }
    }
    break;
    nxt:;
  }
  for (int i = 6; i <= n; ++i) {
    const int li = i, yi = i + i;
    int ltk = i - 1;
    static mt19937 mt(19260817 ^ 19491001);
    iota(fa + 1, fa + i * 2 + 1, 1);
    while (ltk) {
      int u = mt() % (i - 1) + 1, v = mt() % (i - 1) + 1;
      if (getfa(u) == getfa(v)) continue;
      if (ltk > 1) {
        if (getfa(u) == getfa(li)) continue;
        if (getfa(u) == getfa(yi)) continue;
        if (getfa(v) == getfa(li)) continue;
        if (getfa(v) == getfa(yi)) continue;
      }
      cout << "? " << i << ' ' << u << ' ' << v << endl;
      int bs = 0;
      cin >> bs;
      bs -= a[u][v];
      switch (bs) {
        case 0: {
          if (getfa(u) == getfa(li) || getfa(v) == getfa(li)) ++ltk;
          fa[getfa(u)] = fa[getfa(v)] = getfa(li);
          fa[getfa(u + i)] = fa[getfa(v + i)] = getfa(yi);
          ltk -= 2;
          break;
        }
        case 1: {
          fa[getfa(u)] = getfa(v + i);
          fa[getfa(v)] = getfa(u + i);
          --ltk;
          break;
        }
        case 2: {
          if (getfa(u) == getfa(yi) || getfa(v) == getfa(yi)) ++ltk;
          fa[getfa(u)] = fa[getfa(v)] = getfa(yi);
          fa[getfa(u + i)] = fa[getfa(v + i)] = getfa(li);
          ltk -= 2;
          break;
        }
      }
    }
    for (int j = 1; j < i; ++j) {
      a[i][j] = a[j][i] = getfa(j) == getfa(yi);
    }
  }
  cout << "!" << endl;
  for (int i = 1; i <= 100; ++i) {
    for (int j = 1; j <= 100; ++j) {
      cout << a[i][j];
    }
    cout << endl;
  }
  return 0;
}

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 100
Accepted
time: 21ms
memory: 3640kb

input:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

output:

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

result:

points 1.0 points  1.0 correct 2504 queries

Test #2:

score: 100
Accepted
time: 18ms
memory: 3636kb

input:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
...

output:

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

result:

points 1.0 points  1.0 correct 2504 queries

Test #3:

score: 100
Accepted
time: 10ms
memory: 3776kb

input:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

output:

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

result:

points 1.0 points  1.0 correct 2506 queries

Test #4:

score: 100
Accepted
time: 14ms
memory: 3736kb

input:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
...

output:

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

result:

points 1.0 points  1.0 correct 2504 queries

Test #5:

score: 100
Accepted
time: 6ms
memory: 3628kb

input:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

output:

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

result:

points 1.0 points  1.0 correct 2514 queries

Test #6:

score: 0
Wrong Answer
time: 18ms
memory: 3632kb

input:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
...

output:

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

result:

wrong answer the graph you report is incorrect