QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#803837#9874. Matrix Constructionucup-team3734#WA 0ms3856kbC++231.3kb2024-12-07 18:58:572024-12-07 18:59:00

Judging History

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

  • [2024-12-07 18:59:00]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3856kb
  • [2024-12-07 18:58:57]
  • 提交

answer

#include "bits/stdc++.h"

using namespace std;

using ll = long long;
using ld = long double;

#define all(x) (x).begin(), (x).end()

vector<vector<int>> solve(int n, int m) {
  vector<vector<int>> ans(n, vector<int>(m));

  if (n == 1 || m == 1 || m % 2 == 0) {
    int cur = 1;
    for (int i = 0; i < n; ++i)
      for (int j = 0; j < m; ++j)
        ans[i][j] = cur++;
    return ans;
  }

  if (n % 2 == 0) {
    int cur = 1;
    for (int j = 0; j < m; ++j)
      for (int i = 0; i < n; ++i)
        ans[i][j] = cur++;
    return ans;
  }

  vector<int> odd, even;
  for (int i = 1; i <= n * m; ++i) {
    if (i % 2 == 1)
      odd.push_back(i);
    else
      even.push_back(i);
  }

  reverse(all(odd));
  reverse(all(even));

  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j) {
      if (!odd.empty()) {
        ans[i][j] = odd.back();
        odd.pop_back();
      } else if (!even.empty()) {
        ans[i][j] = even.back();
        even.pop_back();
      }
    }

  return ans;
}

int main() {
#ifndef ONLINE_JUDGE
  freopen("m.txt", "r", stdin);
#endif
  ios_base::sync_with_stdio(false);

  int t;
  cin >> t;
  while (t--) {
    int n, m;
    cin >> n >> m;

    auto ans = solve(n, m);
    cout << "yes\n";
    for (int i = 0; i < n; ++i)
      for (int j = 0; j < m; ++j)
        cout << ans[i][j] << " \n"[j + 1 == m];
  }

  return 0;
}

详细

Test #1:

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

input:

2
1 1
2 3

output:

yes
1
yes
1 3 5
2 4 6

result:

ok All test cases passed. (2 test cases)

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3856kb

input:

361
4 9
11 12
16 14
3 7
17 13
1 19
12 3
15 19
11 3
8 18
13 10
8 13
9 18
14 11
7 13
6 16
12 13
1 6
11 15
18 19
5 6
17 19
2 3
17 11
16 19
6 14
5 9
7 2
5 11
15 16
3 15
7 11
16 2
19 15
5 19
2 17
13 12
3 5
19 14
6 3
18 2
16 4
6 8
10 9
17 4
5 16
17 9
16 11
6 9
16 5
3 19
18 9
13 9
12 19
6 13
17 15
13 7
12 ...

output:

yes
1 5 9 13 17 21 25 29 33
2 6 10 14 18 22 26 30 34
3 7 11 15 19 23 27 31 35
4 8 12 16 20 24 28 32 36
yes
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
49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 6...

result:

wrong answer Duplicate sum found for adjacent elements at (1,4) and (1,5) (test case 4)