QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#172847#7178. Bishopsucup-team112#AC ✓106ms23484kbC++2012.6kb2023-09-09 20:58:092023-09-09 20:58:12

Judging History

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

  • [2023-09-09 20:58:12]
  • 评测
  • 测评结果:AC
  • 用时:106ms
  • 内存:23484kb
  • [2023-09-09 20:58:09]
  • 提交

answer

// #pragma GCC target("avx2")
// #pragma GCC optimize("O3")
// #pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;

namespace templates {
// type
using ll  = long long;
using ull = unsigned long long;
template <class T>
using pq = priority_queue<T>;
template <class T>
using qp = priority_queue<T, vector<T>, greater<T>>;
#define vec(T, A, ...) vector<T> A(__VA_ARGS__);
#define vvec(T, A, h, ...) vector<vector<T>> A(h, vector<T>(__VA_ARGS__));
#define vvvec(T, A, h1, h2, ...) vector<vector<vector<T>>> A(h1, vector<vector<T>>(h2, vector<T>(__VA_ARGS__)));

// for loop
#define fori1(a) for (ll _ = 0; _ < (a); _++)
#define fori2(i, a) for (ll i = 0; i < (a); i++)
#define fori3(i, a, b) for (ll i = (a); i < (b); i++)
#define fori4(i, a, b, c) for (ll i = (a); ((c) > 0 || i > (b)) && ((c) < 0 || i < (b)); i += (c))
#define overload4(a, b, c, d, e, ...) e
#define fori(...) overload4(__VA_ARGS__, fori4, fori3, fori2, fori1)(__VA_ARGS__)

// declare and input
// clang-format off
#define INT(...) int __VA_ARGS__; inp(__VA_ARGS__);
#define LL(...) ll __VA_ARGS__; inp(__VA_ARGS__);
#define STRING(...) string __VA_ARGS__; inp(__VA_ARGS__);
#define CHAR(...) char __VA_ARGS__; inp(__VA_ARGS__);
#define DOUBLE(...) double __VA_ARGS__; STRING(str___); __VA_ARGS__ = stod(str___);
#define VEC(T, A, n) vector<T> A(n); inp(A);
#define VVEC(T, A, n, m) vector<vector<T>> A(n, vector<T>(m)); inp(A);
// clang-format on

// const value
const ll MOD1   = 1000000007;
const ll MOD9   = 998244353;
const double PI = acos(-1);

// other macro
#ifndef RIN__LOCAL
#define endl "\n"
#endif
#define spa ' '
#define len(A) A.size()
#define all(A) begin(A), end(A)

// function
vector<char> stoc(string &S) {
    int n = S.size();
    vector<char> ret(n);
    for (int i = 0; i < n; i++) ret[i] = S[i];
    return ret;
}
string ctos(vector<char> &S) {
    int n      = S.size();
    string ret = "";
    for (int i = 0; i < n; i++) ret += S[i];
    return ret;
}

template <class T>
auto min(const T &a) {
    return *min_element(all(a));
}
template <class T>
auto max(const T &a) {
    return *max_element(all(a));
}
template <class T, class S>
auto clamp(T &a, const S &l, const S &r) {
    return (a > r ? r : a < l ? l : a);
}
template <class T, class S>
inline bool chmax(T &a, const S &b) {
    return (a < b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chmin(T &a, const S &b) {
    return (a > b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chclamp(T &a, const S &l, const S &r) {
    auto b = clamp(a, l, r);
    return (a != b ? a = b, 1 : 0);
}

template <typename T>
T sum(vector<T> &A) {
    T tot = 0;
    for (auto a : A) tot += a;
    return tot;
}

template <typename T>
vector<T> compression(vector<T> X) {
    sort(all(X));
    X.erase(unique(all(X)), X.end());
    return X;
}

// input and output
namespace io {

// vector<T>
template <typename T>
istream &operator>>(istream &is, vector<T> &A) {
    for (auto &a : A) is >> a;
    return is;
}
template <typename T>
ostream &operator<<(ostream &os, vector<T> &A) {
    for (size_t i = 0; i < A.size(); i++) {
        os << A[i];
        if (i != A.size() - 1) os << ' ';
    }
    return os;
}

// vector<vector<T>>
template <typename T>
istream &operator>>(istream &is, vector<vector<T>> &A) {
    for (auto &a : A) is >> a;
    return is;
}
template <typename T>
ostream &operator<<(ostream &os, vector<vector<T>> &A) {
    for (size_t i = 0; i < A.size(); i++) {
        os << A[i];
        if (i != A.size() - 1) os << endl;
    }
    return os;
}

// pair<S, T>
template <typename S, typename T>
istream &operator>>(istream &is, pair<S, T> &A) {
    is >> A.first >> A.second;
    return is;
}
template <typename S, typename T>
ostream &operator<<(ostream &os, pair<S, T> &A) {
    os << A.first << ' ' << A.second;
    return os;
}

// vector<pair<S, T>>
template <typename S, typename T>
ostream &operator<<(ostream &os, vector<pair<S, T>> &A) {
    for (size_t i = 0; i < A.size(); i++) {
        os << A[i];
        if (i != A.size() - 1) os << endl;
    }
    return os;
}

// set<T>
template <typename T>
ostream &operator<<(ostream &os, set<T> &A) {
    for (auto itr = A.begin(); itr != A.end(); itr++) {
        os << *itr;
        if (next(itr) != A.end()) os << ' ';
    }
    return os;
}

// unordered_set<T>
template <typename T>
ostream &operator<<(ostream &os, unordered_set<T> &A) {
    for (auto itr = A.begin(); itr != A.end(); itr++) {
        os << *itr;
        if (next(itr) != A.end()) os << ' ';
    }
    return os;
}

// multiset<T>
template <typename T>
ostream &operator<<(ostream &os, multiset<T> &A) {
    for (auto itr = A.begin(); itr != A.end(); itr++) {
        os << *itr;
        if (next(itr) != A.end()) os << ' ';
    }
    return os;
}

// unordered_multiset<T>
template <typename T>
ostream &operator<<(ostream &os, unordered_multiset<T> &A) {
    for (auto itr = A.begin(); itr != A.end(); itr++) {
        os << *itr;
        if (next(itr) != A.end()) os << endl;
    }
    return os;
}

// map<S, T>
template <typename S, typename T>
ostream &operator<<(ostream &os, map<S, T> &A) {
    for (auto itr = A.begin(); itr != A.end(); itr++) {
        os << *itr;
        if (next(itr) != A.end()) os << endl;
    }
    return os;
}

// unordered_map<S, T>
template <typename S, typename T>
ostream &operator<<(ostream &os, unordered_map<S, T> &A) {
    for (auto itr = A.begin(); itr != A.end(); itr++) {
        os << *itr;
        if (next(itr) != A.end()) os << endl;
    }
    return os;
}

// tuple
template <typename T, size_t N>
struct TuplePrint {
    static ostream &print(ostream &os, const T &t) {
        TuplePrint<T, N - 1>::print(os, t);
        os << ' ' << get<N - 1>(t);
        return os;
    }
};
template <typename T>
struct TuplePrint<T, 1> {
    static ostream &print(ostream &os, const T &t) {
        os << get<0>(t);
        return os;
    }
};
template <typename... Args>
ostream &operator<<(ostream &os, const tuple<Args...> &t) {
    TuplePrint<decltype(t), sizeof...(Args)>::print(os, t);
    return os;
}

// queue<T>
template <typename T>
ostream &operator<<(ostream &os, queue<T> &A) {
    auto B = A;
    while (!B.empty()) {
        os << B.front();
        B.pop();
        if (!B.empty()) os << ' ';
    }
    return os;
}

// deque<T>
template <typename T>
ostream &operator<<(ostream &os, deque<T> &A) {
    auto B = A;
    while (!B.empty()) {
        os << B.front();
        B.pop_front();
        if (!B.empty()) os << ' ';
    }
    return os;
}

// stack<T>
template <typename T>
ostream &operator<<(ostream &os, stack<T> &A) {
    auto B = A;
    stack<T> C;
    while (!B.empty()) {
        C.push(B.top());
        B.pop();
    }
    while (!C.empty()) {
        os << C.top();
        C.pop();
        if (!C.empty()) os << ' ';
    }
    return os;
}

// priority_queue<T>
template <typename T>
ostream &operator<<(ostream &os, priority_queue<T> &A) {
    auto B = A;
    while (!B.empty()) {
        os << B.top();
        B.pop();
        if (!B.empty()) os << endl;
    }
    return os;
}

// bitset<N>
template <size_t N>
ostream &operator<<(ostream &os, bitset<N> &A) {
    for (size_t i = 0; i < N; i++) {
        os << A[i];
    }
    return os;
}

// io functions
void FLUSH() {
    cout << flush;
}

void print() {
    cout << endl;
}
template <class Head, class... Tail>
void print(Head &&head, Tail &&...tail) {
    cout << head;
    if (sizeof...(Tail)) cout << spa;
    print(forward<Tail>(tail)...);
}

template <typename T, typename S>
void prisep(vector<T> &A, S sep) {
    int n = A.size();
    for (int i = 0; i < n; i++) {
        cout << A[i];
        if (i != n - 1) cout << sep;
    }
    cout << endl;
}
template <typename T, typename S>
void priend(T A, S end) {
    cout << A << end;
}
template <typename T>
void prispa(T A) {
    priend(A, spa);
}
template <typename T, typename S>
bool printif(bool f, T A, S B) {
    if (f)
        print(A);
    else
        print(B);
    return f;
}

template <class... T>
void inp(T &...a) {
    (cin >> ... >> a);
}

} // namespace io
using namespace io;

// read graph
vector<vector<int>> read_edges(int n, int m, bool direct = false, int indexed = 1) {
    vector<vector<int>> edges(n, vector<int>());
    for (int i = 0; i < m; i++) {
        INT(u, v);
        u -= indexed;
        v -= indexed;
        edges[u].push_back(v);
        if (!direct) edges[v].push_back(u);
    }
    return edges;
}
vector<vector<int>> read_tree(int n, int indexed = 1) {
    return read_edges(n, n - 1, false, indexed);
}

template <typename T = long long>
vector<vector<pair<int, T>>> read_wedges(int n, int m, bool direct = false, int indexed = 1) {
    vector<vector<pair<int, T>>> edges(n, vector<pair<int, T>>());
    for (int i = 0; i < m; i++) {
        INT(u, v);
        T w;
        inp(w);
        u -= indexed;
        v -= indexed;
        edges[u].push_back({v, w});
        if (!direct) edges[v].push_back({u, w});
    }
    return edges;
}
template <typename T = long long>
vector<vector<pair<int, T>>> read_wtree(int n, int indexed = 1) {
    return read_wedges<T>(n, n - 1, false, indexed);
}

// yes / no
namespace yesno {

// yes
inline bool yes(bool f = true) {
    cout << (f ? "yes" : "no") << endl;
    return f;
}
inline bool Yes(bool f = true) {
    cout << (f ? "Yes" : "No") << endl;
    return f;
}
inline bool YES(bool f = true) {
    cout << (f ? "YES" : "NO") << endl;
    return f;
}

// no
inline bool no(bool f = true) {
    cout << (!f ? "yes" : "no") << endl;
    return f;
}
inline bool No(bool f = true) {
    cout << (!f ? "Yes" : "No") << endl;
    return f;
}
inline bool NO(bool f = true) {
    cout << (!f ? "YES" : "NO") << endl;
    return f;
}

// possible
inline bool possible(bool f = true) {
    cout << (f ? "possible" : "impossible") << endl;
    return f;
}
inline bool Possible(bool f = true) {
    cout << (f ? "Possible" : "Impossible") << endl;
    return f;
}
inline bool POSSIBLE(bool f = true) {
    cout << (f ? "POSSIBLE" : "IMPOSSIBLE") << endl;
    return f;
}

// impossible
inline bool impossible(bool f = true) {
    cout << (!f ? "possible" : "impossible") << endl;
    return f;
}
inline bool Impossible(bool f = true) {
    cout << (!f ? "Possible" : "Impossible") << endl;
    return f;
}
inline bool IMPOSSIBLE(bool f = true) {
    cout << (!f ? "POSSIBLE" : "IMPOSSIBLE") << endl;
    return f;
}

// Alice Bob
inline bool Alice(bool f = true) {
    cout << (f ? "Alice" : "Bob") << endl;
    return f;
}
inline bool Bob(bool f = true) {
    cout << (f ? "Bob" : "Alice") << endl;
    return f;
}

// Takahashi Aoki
inline bool Takahashi(bool f = true) {
    cout << (f ? "Takahashi" : "Aoki") << endl;
    return f;
}
inline bool Aoki(bool f = true) {
    cout << (f ? "Aoki" : "Takahashi") << endl;
    return f;
}

} // namespace yesno
using namespace yesno;

} // namespace templates
using namespace templates;

void solve() {
    bool rev = false;
    INT(h, w);
    // INT(exp);
    using P = pair<int, int>;
    if (h > w) {
        swap(h, w);
        rev = true;
    }
    vec(P, ans, 0);

    set<int> se1, se2;

    if (h == w) {
        fori(i, 1, h + 1) {
            ans.emplace_back(i, 1);
            if (i != 1 and i != h) {
                ans.emplace_back(i, w);
            }
        }
    }

    else {
        fori(i, 1, h + 1) {
            se1.insert(i + 1);
            se1.insert(i + w);
            se2.insert(i - 1);
            se2.insert(i - w);
            ans.emplace_back(i, 1);
            ans.emplace_back(i, w);
        }

        int i0 = (h + 1) / 2;
        int i1 = (h + 2) / 2;

        vector<int> is = {i0, i1};

        fori(j, 1, w + 1) {
            for (auto i : is) {
                if (!se1.count(i + j) and !se2.count(i - j)) {
                    ans.emplace_back(i, j);
                    se1.insert(i + j);
                    se2.insert(i - j);
                }
            }
        }
    }

    if (rev) {
        for (auto &row : ans) {
            swap(row.first, row.second);
        }
        swap(h, w);
    }

    print(len(ans));
    print(ans);
    // if (len(ans) != exp) {
    //     print(h, w, len(ans), exp);
    // }
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cout << fixed << setprecision(12);
    int t;
    t = 1;
    // cin >> t;
    while (t--) solve();
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2 5

output:

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

result:

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

Test #2:

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

input:

5 5

output:

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

result:

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

Test #3:

score: 0
Accepted
time: 12ms
memory: 5288kb

input:

100000 100000

output:

199998
1 1
2 1
2 100000
3 1
3 100000
4 1
4 100000
5 1
5 100000
6 1
6 100000
7 1
7 100000
8 1
8 100000
9 1
9 100000
10 1
10 100000
11 1
11 100000
12 1
12 100000
13 1
13 100000
14 1
14 100000
15 1
15 100000
16 1
16 100000
17 1
17 100000
18 1
18 100000
19 1
19 100000
20 1
20 100000
21 1
21 100000
22 1
...

result:

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

Test #4:

score: 0
Accepted
time: 106ms
memory: 23484kb

input:

100000 99999

output:

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

result:

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

Test #5:

score: 0
Accepted
time: 86ms
memory: 18456kb

input:

100000 50000

output:

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

result:

ok n: 100000, m: 50000, bishops: 149998

Test #6:

score: 0
Accepted
time: 66ms
memory: 13400kb

input:

1 100000

output:

100000
1 1
1 100000
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 5...

result:

ok n: 1, m: 100000, bishops: 100000

Test #7:

score: 0
Accepted
time: 81ms
memory: 17548kb

input:

34535 99889

output:

134423
1 1
1 99889
2 1
2 99889
3 1
3 99889
4 1
4 99889
5 1
5 99889
6 1
6 99889
7 1
7 99889
8 1
8 99889
9 1
9 99889
10 1
10 99889
11 1
11 99889
12 1
12 99889
13 1
13 99889
14 1
14 99889
15 1
15 99889
16 1
16 99889
17 1
17 99889
18 1
18 99889
19 1
19 99889
20 1
20 99889
21 1
21 99889
22 1
22 99889
23 ...

result:

ok n: 34535, m: 99889, bishops: 134423

Test #8:

score: 0
Accepted
time: 53ms
memory: 14544kb

input:

12231 97889

output:

110119
1 1
1 97889
2 1
2 97889
3 1
3 97889
4 1
4 97889
5 1
5 97889
6 1
6 97889
7 1
7 97889
8 1
8 97889
9 1
9 97889
10 1
10 97889
11 1
11 97889
12 1
12 97889
13 1
13 97889
14 1
14 97889
15 1
15 97889
16 1
16 97889
17 1
17 97889
18 1
18 97889
19 1
19 97889
20 1
20 97889
21 1
21 97889
22 1
22 97889
23 ...

result:

ok n: 12231, m: 97889, bishops: 110119

Test #9:

score: 0
Accepted
time: 71ms
memory: 14360kb

input:

10000 100000

output:

109998
1 1
1 100000
2 1
2 100000
3 1
3 100000
4 1
4 100000
5 1
5 100000
6 1
6 100000
7 1
7 100000
8 1
8 100000
9 1
9 100000
10 1
10 100000
11 1
11 100000
12 1
12 100000
13 1
13 100000
14 1
14 100000
15 1
15 100000
16 1
16 100000
17 1
17 100000
18 1
18 100000
19 1
19 100000
20 1
20 100000
21 1
21 100...

result:

ok n: 10000, m: 100000, bishops: 109998

Test #10:

score: 0
Accepted
time: 67ms
memory: 13480kb

input:

13 99999

output:

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

result:

ok n: 13, m: 99999, bishops: 100011

Test #11:

score: 0
Accepted
time: 73ms
memory: 13484kb

input:

21 99999

output:

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

result:

ok n: 21, m: 99999, bishops: 100019

Test #12:

score: 0
Accepted
time: 83ms
memory: 18416kb

input:

49999 100000

output:

149998
1 1
1 100000
2 1
2 100000
3 1
3 100000
4 1
4 100000
5 1
5 100000
6 1
6 100000
7 1
7 100000
8 1
8 100000
9 1
9 100000
10 1
10 100000
11 1
11 100000
12 1
12 100000
13 1
13 100000
14 1
14 100000
15 1
15 100000
16 1
16 100000
17 1
17 100000
18 1
18 100000
19 1
19 100000
20 1
20 100000
21 1
21 100...

result:

ok n: 49999, m: 100000, bishops: 149998

Test #13:

score: 0
Accepted
time: 80ms
memory: 17620kb

input:

33333 99999

output:

133331
1 1
1 99999
2 1
2 99999
3 1
3 99999
4 1
4 99999
5 1
5 99999
6 1
6 99999
7 1
7 99999
8 1
8 99999
9 1
9 99999
10 1
10 99999
11 1
11 99999
12 1
12 99999
13 1
13 99999
14 1
14 99999
15 1
15 99999
16 1
16 99999
17 1
17 99999
18 1
18 99999
19 1
19 99999
20 1
20 99999
21 1
21 99999
22 1
22 99999
23 ...

result:

ok n: 33333, m: 99999, bishops: 133331

Test #14:

score: 0
Accepted
time: 70ms
memory: 15416kb

input:

23342 98876

output:

122216
1 1
1 98876
2 1
2 98876
3 1
3 98876
4 1
4 98876
5 1
5 98876
6 1
6 98876
7 1
7 98876
8 1
8 98876
9 1
9 98876
10 1
10 98876
11 1
11 98876
12 1
12 98876
13 1
13 98876
14 1
14 98876
15 1
15 98876
16 1
16 98876
17 1
17 98876
18 1
18 98876
19 1
19 98876
20 1
20 98876
21 1
21 98876
22 1
22 98876
23 ...

result:

ok n: 23342, m: 98876, bishops: 122216

Test #15:

score: 0
Accepted
time: 82ms
memory: 18296kb

input:

56713 91234

output:

147946
1 1
1 91234
2 1
2 91234
3 1
3 91234
4 1
4 91234
5 1
5 91234
6 1
6 91234
7 1
7 91234
8 1
8 91234
9 1
9 91234
10 1
10 91234
11 1
11 91234
12 1
12 91234
13 1
13 91234
14 1
14 91234
15 1
15 91234
16 1
16 91234
17 1
17 91234
18 1
18 91234
19 1
19 91234
20 1
20 91234
21 1
21 91234
22 1
22 91234
23 ...

result:

ok n: 56713, m: 91234, bishops: 147946

Test #16:

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

input:

99995 99995

output:

199988
1 1
2 1
2 99995
3 1
3 99995
4 1
4 99995
5 1
5 99995
6 1
6 99995
7 1
7 99995
8 1
8 99995
9 1
9 99995
10 1
10 99995
11 1
11 99995
12 1
12 99995
13 1
13 99995
14 1
14 99995
15 1
15 99995
16 1
16 99995
17 1
17 99995
18 1
18 99995
19 1
19 99995
20 1
20 99995
21 1
21 99995
22 1
22 99995
23 1
23 999...

result:

ok n: 99995, m: 99995, bishops: 199988

Test #17:

score: 0
Accepted
time: 30ms
memory: 10240kb

input:

12345 54321

output:

66665
1 1
1 54321
2 1
2 54321
3 1
3 54321
4 1
4 54321
5 1
5 54321
6 1
6 54321
7 1
7 54321
8 1
8 54321
9 1
9 54321
10 1
10 54321
11 1
11 54321
12 1
12 54321
13 1
13 54321
14 1
14 54321
15 1
15 54321
16 1
16 54321
17 1
17 54321
18 1
18 54321
19 1
19 54321
20 1
20 54321
21 1
21 54321
22 1
22 54321
23 1...

result:

ok n: 12345, m: 54321, bishops: 66665

Test #18:

score: 0
Accepted
time: 94ms
memory: 21536kb

input:

90000 92000

output:

181998
1 1
1 92000
2 1
2 92000
3 1
3 92000
4 1
4 92000
5 1
5 92000
6 1
6 92000
7 1
7 92000
8 1
8 92000
9 1
9 92000
10 1
10 92000
11 1
11 92000
12 1
12 92000
13 1
13 92000
14 1
14 92000
15 1
15 92000
16 1
16 92000
17 1
17 92000
18 1
18 92000
19 1
19 92000
20 1
20 92000
21 1
21 92000
22 1
22 92000
23 ...

result:

ok n: 90000, m: 92000, bishops: 181998

Test #19:

score: 0
Accepted
time: 38ms
memory: 11272kb

input:

10000 70000

output:

79998
1 1
1 70000
2 1
2 70000
3 1
3 70000
4 1
4 70000
5 1
5 70000
6 1
6 70000
7 1
7 70000
8 1
8 70000
9 1
9 70000
10 1
10 70000
11 1
11 70000
12 1
12 70000
13 1
13 70000
14 1
14 70000
15 1
15 70000
16 1
16 70000
17 1
17 70000
18 1
18 70000
19 1
19 70000
20 1
20 70000
21 1
21 70000
22 1
22 70000
23 1...

result:

ok n: 10000, m: 70000, bishops: 79998

Test #20:

score: 0
Accepted
time: 51ms
memory: 11240kb

input:

10000 70001

output:

80000
1 1
1 70001
2 1
2 70001
3 1
3 70001
4 1
4 70001
5 1
5 70001
6 1
6 70001
7 1
7 70001
8 1
8 70001
9 1
9 70001
10 1
10 70001
11 1
11 70001
12 1
12 70001
13 1
13 70001
14 1
14 70001
15 1
15 70001
16 1
16 70001
17 1
17 70001
18 1
18 70001
19 1
19 70001
20 1
20 70001
21 1
21 70001
22 1
22 70001
23 1...

result:

ok n: 10000, m: 70001, bishops: 80000

Test #21:

score: 0
Accepted
time: 55ms
memory: 12272kb

input:

10000 80000

output:

89998
1 1
1 80000
2 1
2 80000
3 1
3 80000
4 1
4 80000
5 1
5 80000
6 1
6 80000
7 1
7 80000
8 1
8 80000
9 1
9 80000
10 1
10 80000
11 1
11 80000
12 1
12 80000
13 1
13 80000
14 1
14 80000
15 1
15 80000
16 1
16 80000
17 1
17 80000
18 1
18 80000
19 1
19 80000
20 1
20 80000
21 1
21 80000
22 1
22 80000
23 1...

result:

ok n: 10000, m: 80000, bishops: 89998

Test #22:

score: 0
Accepted
time: 53ms
memory: 12272kb

input:

10000 80001

output:

90000
1 1
1 80001
2 1
2 80001
3 1
3 80001
4 1
4 80001
5 1
5 80001
6 1
6 80001
7 1
7 80001
8 1
8 80001
9 1
9 80001
10 1
10 80001
11 1
11 80001
12 1
12 80001
13 1
13 80001
14 1
14 80001
15 1
15 80001
16 1
16 80001
17 1
17 80001
18 1
18 80001
19 1
19 80001
20 1
20 80001
21 1
21 80001
22 1
22 80001
23 1...

result:

ok n: 10000, m: 80001, bishops: 90000

Test #23:

score: 0
Accepted
time: 53ms
memory: 12292kb

input:

10000 80002

output:

90000
1 1
1 80002
2 1
2 80002
3 1
3 80002
4 1
4 80002
5 1
5 80002
6 1
6 80002
7 1
7 80002
8 1
8 80002
9 1
9 80002
10 1
10 80002
11 1
11 80002
12 1
12 80002
13 1
13 80002
14 1
14 80002
15 1
15 80002
16 1
16 80002
17 1
17 80002
18 1
18 80002
19 1
19 80002
20 1
20 80002
21 1
21 80002
22 1
22 80002
23 1...

result:

ok n: 10000, m: 80002, bishops: 90000

Test #24:

score: 0
Accepted
time: 53ms
memory: 12348kb

input:

10000 79999

output:

89998
1 1
1 79999
2 1
2 79999
3 1
3 79999
4 1
4 79999
5 1
5 79999
6 1
6 79999
7 1
7 79999
8 1
8 79999
9 1
9 79999
10 1
10 79999
11 1
11 79999
12 1
12 79999
13 1
13 79999
14 1
14 79999
15 1
15 79999
16 1
16 79999
17 1
17 79999
18 1
18 79999
19 1
19 79999
20 1
20 79999
21 1
21 79999
22 1
22 79999
23 1...

result:

ok n: 10000, m: 79999, bishops: 89998

Test #25:

score: 0
Accepted
time: 52ms
memory: 12424kb

input:

10000 79998

output:

89996
1 1
1 79998
2 1
2 79998
3 1
3 79998
4 1
4 79998
5 1
5 79998
6 1
6 79998
7 1
7 79998
8 1
8 79998
9 1
9 79998
10 1
10 79998
11 1
11 79998
12 1
12 79998
13 1
13 79998
14 1
14 79998
15 1
15 79998
16 1
16 79998
17 1
17 79998
18 1
18 79998
19 1
19 79998
20 1
20 79998
21 1
21 79998
22 1
22 79998
23 1...

result:

ok n: 10000, m: 79998, bishops: 89996

Test #26:

score: 0
Accepted
time: 72ms
memory: 14468kb

input:

11111 100000

output:

111110
1 1
1 100000
2 1
2 100000
3 1
3 100000
4 1
4 100000
5 1
5 100000
6 1
6 100000
7 1
7 100000
8 1
8 100000
9 1
9 100000
10 1
10 100000
11 1
11 100000
12 1
12 100000
13 1
13 100000
14 1
14 100000
15 1
15 100000
16 1
16 100000
17 1
17 100000
18 1
18 100000
19 1
19 100000
20 1
20 100000
21 1
21 100...

result:

ok n: 11111, m: 100000, bishops: 111110

Test #27:

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

input:

1 1

output:

1
1 1

result:

ok n: 1, m: 1, bishops: 1

Extra Test:

score: 0
Extra Test Passed