QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#90927#6131. TournamentksunhokimWA 2ms3408kbC++171.2kb2023-03-26 08:15:452023-03-26 08:15:49

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-26 08:15:49]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3408kb
  • [2023-03-26 08:15:45]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void solve() {
  int n,k;
  cin >> n >> k;
  if (n%2 == 1) {
    cout << "Impossible" << "\n";
    return;
  }
  if ((n & (n-1)) != 0) {
    cout << "Impossible" << "\n";
    return;
  }
  vector g(n, set<int>());
  for (int i=0;i<n;i++){
    for(int j=0;j<n;j++) {
      if (i == j) continue;
      g[i].insert(j);
    }
  }
  vector<vector<int>> ans;
  for (int i=0;i<k;i++){
    ans.push_back(vector<int>(n));
    vector<int> vis(n);
    for (int j=0;j<n;j++){
      if (vis[j]) continue;
      int u = j;
      for (auto it = g[u].begin(); it != g[u].end(); ++it) {
        int v = *it;
        if (!vis[v]) {
          vis[u] = true;
          vis[v] = true;
          g[u].erase(v);
          g[v].erase(u);
          ans.back()[v] = u;
          ans.back()[u] = v;
          break;
        }
      }
      
    }
  }
  for (int i=0;i<k;i++) {
    for (int j=0;j<n;j++) {
      if (j != n-1) {
        cout << ans[i][j] + 1 << " ";
      } else {
        cout << ans[i][j] + 1;
      }
    }
    cout << "\n";
  }
  
}

int main() {
  int t;
  cin >> t;
  while (t--)
    solve();
}

详细

Test #1:

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

input:

2
3 1
4 3

output:

Impossible
2 1 4 3
3 4 1 2
4 3 2 1

result:

ok 4 lines

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 3408kb

input:

100
1 4
2 1
2 2
2 3
3 6
4 2
4 3
4 4
4 5
5 4
6 1
6 2
6 4
7 1
8 3
8 7
8 8
8 14
9 4
10 1
10 2
10 3
12 2
12 3
12 4
12 8
13 2
14 1
14 2
14 4
15 4
16 9
16 15
16 16
16 28
17 6
18 1
18 2
18 4
19 5
20 1
20 3
20 4
20 6
21 1
22 1
22 2
22 3
23 4
24 5
24 7
24 8
24 15
25 3
26 1
26 2
26 3
27 5
28 1
28 3
28 4
28 6
...

output:

Impossible
2 1
2 1
1 1
2 1
1 1
1 1
Impossible
2 1 4 3
3 4 1 2
2 1 4 3
3 4 1 2
4 3 2 1
2 1 4 3
3 4 1 2
4 3 2 1
1 1 1 1
2 1 4 3
3 4 1 2
4 3 2 1
1 1 1 1
1 1 1 1
Impossible
Impossible
Impossible
Impossible
Impossible
2 1 4 3 6 5 8 7
3 4 1 2 7 8 5 6
4 3 2 1 8 7 6 5
2 1 4 3 6 5 8 7
3 4 1 2 7 8 5 6
4 3 2 1...

result:

wrong answer 3rd lines differ - expected: 'Impossible', found: '2 1'