QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#173033#7178. Bishopsucup-team133#WA 17ms5336kbC++231.7kb2023-09-09 21:42:102023-09-09 21:42:11

Judging History

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

  • [2023-09-09 21:42:11]
  • 评测
  • 测评结果:WA
  • 用时:17ms
  • 内存:5336kb
  • [2023-09-09 21:42:10]
  • 提交

answer

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    function<vector<pair<int, int>>(int, int)> Solve = [&](int n, int m) {
        vector<pair<int, int>> res;
        if (n > m) {
            res = Solve(m, n);
            for (auto& [x, y] : res) {
                swap(x, y);
            }
        } else if (n == m) {
            for (int i = 0; i < n; i++) {
                res.emplace_back(0, i);
            }
            for (int i = 1; i < n - 1; i++) {
                res.emplace_back(n - 1, i);
            }
        } else if (m % n) {
            int t = m % n;
            res = Solve(n, t);
            t += n - 1;
            while (t < m) {
                for (int i = 0; i < n; i++) {
                    res.emplace_back(i, t);
                }
                t += n;
            }
        } else {
            int t = m / n;
            for (int i = 1; i < t; i++) {
                for (int j = 0; j < n; j++) {
                    res.emplace_back(j, i * n + n - 1);
                }
            }
            for (int j = 0; j < n; j++) {
                res.emplace_back(j, 0);
            }
            if (n % 2 == 0) {
                for (int j = 1; j < n - 1; j++) {
                    res.emplace_back(n - 1, j);
                }
            } else {
                for (int j = (n + 1) / 2; j <= 3 * (n - 1) / 2; j++) {
                    res.emplace_back(n / 2, j);
                }
            }
        }
        return res;
    };
    int n, m;
    cin >> n >> m;
    auto a = Solve(n, m);
    cout << a.size() << '\n';
    for (auto [x, y] : a) {
        cout << x + 1 << " " << y + 1 << '\n';
    }
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3864kb

input:

2 5

output:

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

result:

ok n: 2, m: 5, bishops: 6

Test #2:

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

input:

5 5

output:

8
1 1
1 2
1 3
1 4
1 5
5 2
5 3
5 4

result:

ok n: 5, m: 5, bishops: 8

Test #3:

score: 0
Accepted
time: 15ms
memory: 5336kb

input:

100000 100000

output:

199998
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 ...

result:

ok n: 100000, m: 100000, bishops: 199998

Test #4:

score: 0
Accepted
time: 17ms
memory: 5180kb

input:

100000 99999

output:

199998
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
1...

result:

ok n: 100000, m: 99999, bishops: 199998

Test #5:

score: -100
Wrong Answer
time: 17ms
memory: 5252kb

input:

100000 50000

output:

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

result:

wrong answer Dif diagonals are not distinct