QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#707524#9519. Build a ComputeryzhxAC ✓1ms3900kbC++203.8kb2024-11-03 16:21:222024-11-03 16:21:24

Judging History

This is the latest submission verdict.

  • [2024-11-03 16:21:24]
  • Judged
  • Verdict: AC
  • Time: 1ms
  • Memory: 3900kb
  • [2024-11-03 16:21:22]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define re
#define ll long long
#define in inline
#define int ll
const int _ = 101;
const int maxn = 20;
int L, R, lb[_], rb[_], lenl, lenr;
namespace case1 {  // L==R
void out(int x) {
    if (x == 1) {
        cout << 1 << ' ' << 2 << ' ' << lb[0] << endl;
        return;
    }
    out(x - 1);
    cout << 1 << ' ' << x + 1 << ' ' << lb[x - 1] << endl;
}
void solve() {
    int tot = 2;
    cout << tot + lenl << endl;
    cout << 1 << ' ' << lenl + 2 << ' ' << 1 << endl;
    cout << 0 << endl;
    if (L != 1) out(lenl);
}
}  // namespace case1

int mp[_][_], mp2[_][_], idl[_], idr[_], idb[_], tot = 2, cntl, cntr, cntb;
namespace case2 {
void solve() {
    int now = 0;
    for (int i = lenl; i >= 0; i--)
        if (lb[i] != rb[i]) {
            now = i;
            break;
        }
    for (int i = now - 1; i >= 0; i--)
        if (lb[i] == 0 || rb[i] == 1) {
            cntb = i;
            break;
        }
    for (int i = 1; i <= cntb; ++i) idb[i] = ++tot;
    for (int i = 1; i < now; ++i) {
        if (lb[i] == 0) mp[idl[i + 1]][idb[i]] = 1;
        if (rb[i] == 1) mp[idr[i + 1]][idb[i]] = 0;
    }
    if (R - L > 1) {
        if (lb[0] == 0) mp2[idl[1]][2] = 1;
        if (rb[0] == 1) mp2[idr[1]][2] = 0;
    }
}
}  // namespace case2

namespace case3 {
void solve() {
    for (int i = lenl - 1; i >= 0; i--)
        if (lb[i] == 0) {
            cntb = i;
            break;
        }
    for (int i = lenr - 1; i >= 0; i--)
        if (rb[i] == 1) {
            cntb = max(cntb, i);
            break;
        }
    if (lenr - lenl > 1) cntb = max(cntb, lenr - 1);
    for (int i = 1; i <= cntb; ++i) idb[i] = ++tot;
    if (lenr - lenl > 1) {
        for (int i = lenr - 1; i > lenl; i--) {
            mp[1][idb[i]] = 1;
        }
    }
    for (int i = lenl - 1; i >= 1; i--)
        if (lb[i] == 0) {
            mp[idl[i + 1]][idb[i]] = 1;
        }
    for (int i = lenr - 1; i >= 1; i--)
        if (rb[i] == 1) {
            mp[idr[i + 1]][idb[i]] = 0;
        }
    if (R - L > 1) {
        if (lb[0] == 0) mp2[idl[1]][2] = 1;
        if (rb[0] == 1) mp2[idr[1]][2] = 0;
    }
}
}  // namespace case3
signed main() {
    cin >> L >> R;
    for (int i = 0; i <= 100; ++i)
        for (int j = 0; j <= 100; ++j) mp2[i][j] = mp[i][j] = -1;
    for (int i = 0; i <= 20; ++i) {
        if (L & (1 << i)) lenl = i, lb[i] = 1;
        if (R & (1 << i)) lenr = i, rb[i] = 1;
    }

    if (L == R) {
        case1::solve();
        return 0;
    }
    // L chain
    mp[1][lenl + tot] = 1;
    mp[tot + 1][2] = lb[0];
    for (int i = lenl; i > 1; i--)
        mp[i + tot][i - 1 + tot] = lb[i - 1], idl[i] = i + tot;
    idl[1] = tot + 1;
    tot += lenl;

    // R chain
    mp[1][lenr + tot] = 1;
    mp[tot + 1][2] = rb[0];
    for (int i = lenr; i > 1; i--)
        mp[i + tot][i - 1 + tot] = rb[i - 1], idr[i] = i + tot;
    idr[1] = tot + 1;
    tot += lenr;

    if (lenl == lenr) {
        case2::solve();
    } else {
        case3::solve();
    }

    if (cntb) {
        mp[idb[1]][2] = 1;
        mp2[idb[1]][2] = 0;
        for (int i = cntb; i > 1; i--) mp[idb[i]][idb[i - 1]] = 1, mp2[idb[i]][idb[i - 1]] = 0;
    }
    cout << tot << endl;
    // return 0;
    for (int i = 1; i <= tot; ++i) {
        int k = 0;
        for (int j = 1; j <= tot; ++j)
            if (mp[i][j] >= 0) k++;
        for (int j = 1; j <= tot; ++j)
            if (mp2[i][j] >= 0) k++;
        cout << k << ' ';
        for (int j = 1; j <= tot; ++j)
            if (mp[i][j] >= 0) cout << j << ' ' << mp[i][j] << ' ';
        for (int j = 1; j <= tot; ++j)
            if (mp2[i][j] >= 0) cout << j << ' ' << mp2[i][j] << ' ';
        cout << endl;
    }
    return 0;
}

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

详细

Test #1:

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

input:

5 7

output:

6
2 4 1 6 1 
0 
1 2 1 
1 3 0 
2 2 1 2 0 
1 5 1 

result:

ok ok

Test #2:

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

input:

10 27

output:

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

result:

ok ok

Test #3:

score: 0
Accepted
time: 0ms
memory: 3784kb

input:

5 13

output:

9
2 4 1 7 1 
0 
1 2 1 
2 3 0 8 1 
2 2 1 2 0 
1 5 0 
2 6 1 9 0 
2 2 1 2 0 
2 8 1 8 0 

result:

ok ok

Test #4:

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

input:

1 1000000

output:

39
20 2 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 
0 
1 2 0 
1 3 0 
1 4 0 
1 5 0 
1 6 0 
1 7 0 
2 8 1 27 0 
1 9 0 
1 10 0 
2 11 1 30 0 
1 12 0 
1 13 0 
1 14 0 
1 15 0 
2 16 1 35 0 
1 17 0 
2 18 1 37 0 
2 19 1 38 0 
2 20 1 39 0 
2 2 1 2 0 
2 22 1...

result:

ok ok

Test #5:

score: 0
Accepted
time: 0ms
memory: 3808kb

input:

1 1

output:

2
1 2 1
0

result:

ok ok

Test #6:

score: 0
Accepted
time: 0ms
memory: 3872kb

input:

7 9

output:

7
2 4 1 7 1 
0 
1 2 1 
1 3 1 
2 2 1 2 0 
1 5 0 
1 6 0 

result:

ok ok

Test #7:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

3 7

output:

6
2 3 1 5 1 
0 
1 2 1 
2 2 1 2 0 
2 4 1 6 0 
2 2 1 2 0 

result:

ok ok

Test #8:

score: 0
Accepted
time: 0ms
memory: 3784kb

input:

1 5

output:

5
3 2 1 4 1 5 1 
0 
2 2 1 2 0 
1 3 0 
2 2 1 2 0 

result:

ok ok

Test #9:

score: 0
Accepted
time: 0ms
memory: 3876kb

input:

1 4

output:

5
3 2 1 4 1 5 1 
0 
1 2 0 
1 3 0 
2 2 1 2 0 

result:

ok ok

Test #10:

score: 0
Accepted
time: 0ms
memory: 3768kb

input:

8 9

output:

8
2 5 1 8 1 
0 
1 2 0 
1 3 0 
1 4 0 
1 2 1 
1 6 0 
1 7 0 

result:

ok ok

Test #11:

score: 0
Accepted
time: 0ms
memory: 3900kb

input:

7 51

output:

13
4 4 1 9 1 12 1 13 1 
0 
1 2 1 
1 3 1 
2 2 1 2 0 
2 5 1 10 0 
1 6 0 
1 7 0 
2 8 1 13 0 
2 2 1 2 0 
2 10 1 10 0 
2 11 1 11 0 
2 12 1 12 0 

result:

ok ok

Test #12:

score: 0
Accepted
time: 0ms
memory: 3752kb

input:

51 79

output:

16
2 7 1 13 1 
0 
1 2 1 
1 3 1 
2 4 0 15 1 
2 5 0 16 1 
1 6 1 
2 2 1 2 0 
2 8 1 14 0 
2 9 1 15 0 
2 10 1 16 0 
1 11 0 
1 12 0 
2 2 1 2 0 
2 14 1 14 0 
2 15 1 15 0 

result:

ok ok

Test #13:

score: 0
Accepted
time: 0ms
memory: 3884kb

input:

92 99

output:

15
2 8 1 14 1 
0 
2 2 0 2 1 
2 3 0 15 1 
1 4 1 
1 5 1 
1 6 1 
1 7 0 
2 2 1 2 0 
2 9 1 15 0 
1 10 0 
1 11 0 
1 12 0 
1 13 1 
2 2 1 2 0 

result:

ok ok

Test #14:

score: 0
Accepted
time: 0ms
memory: 3812kb

input:

27 36

output:

13
2 6 1 11 1 
0 
1 2 1 
1 3 1 
2 4 0 13 1 
1 5 1 
1 2 0 
1 7 0 
2 8 1 13 0 
1 9 0 
1 10 0 
2 2 1 2 0 
2 12 1 12 0 

result:

ok ok

Test #15:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

55 84

output:

17
2 7 1 13 1 
0 
1 2 1 
1 3 1 
1 4 1 
2 5 0 16 1 
1 6 1 
1 2 0 
1 8 0 
2 9 1 15 0 
1 10 0 
2 11 1 17 0 
1 12 0 
2 2 1 2 0 
2 14 1 14 0 
2 15 1 15 0 
2 16 1 16 0 

result:

ok ok

Test #16:

score: 0
Accepted
time: 0ms
memory: 3880kb

input:

297208 929600

output:

57
2 20 1 39 1 
0 
2 2 0 2 1 
2 3 0 40 1 
2 4 0 41 1 
1 5 1 
1 6 1 
1 7 1 
1 8 1 
1 9 1 
2 10 0 47 1 
2 11 0 48 1 
2 12 0 49 1 
1 13 1 
2 14 0 51 1 
2 15 0 52 1 
2 16 0 53 1 
1 17 1 
2 18 0 55 1 
2 19 0 56 1 
1 2 0 
1 21 0 
1 22 0 
1 23 0 
1 24 0 
1 25 0 
2 26 1 45 0 
1 27 0 
2 28 1 47 0 
2 29 1 48 ...

result:

ok ok

Test #17:

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

input:

45728 589156

output:

54
5 17 1 36 1 52 1 53 1 54 1 
0 
2 2 0 2 1 
2 3 0 37 1 
2 4 0 38 1 
2 5 0 39 1 
2 6 0 40 1 
1 7 1 
2 8 0 42 1 
1 9 1 
2 10 0 44 1 
1 11 1 
2 12 0 46 1 
2 13 0 47 1 
1 14 1 
1 15 1 
2 16 0 50 1 
1 2 0 
1 18 0 
2 19 1 38 0 
1 20 0 
1 21 0 
2 22 1 41 0 
2 23 1 42 0 
1 24 0 
2 25 1 44 0 
1 26 0 
2 27 1...

result:

ok ok

Test #18:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

129152 138000

output:

47
2 18 1 35 1 
0 
2 2 0 2 1 
2 3 0 36 1 
2 4 0 37 1 
2 5 0 38 1 
2 6 0 39 1 
2 7 0 40 1 
2 8 0 41 1 
1 9 1 
2 10 0 43 1 
2 11 0 44 1 
2 12 0 45 1 
1 13 1 
1 14 1 
1 15 1 
1 16 1 
1 17 1 
1 2 0 
1 19 0 
1 20 0 
1 21 0 
2 22 1 39 0 
1 23 0 
1 24 0 
1 25 0 
2 26 1 43 0 
2 27 1 44 0 
1 28 0 
2 29 1 46 ...

result:

ok ok

Test #19:

score: 0
Accepted
time: 0ms
memory: 3808kb

input:

245280 654141

output:

56
3 19 1 38 1 56 1 
0 
2 2 0 2 1 
2 3 0 39 1 
2 4 0 40 1 
2 5 0 41 1 
2 6 0 42 1 
1 7 1 
2 8 0 44 1 
2 9 0 45 1 
2 10 0 46 1 
1 11 1 
1 12 1 
1 13 1 
1 14 1 
1 15 1 
2 16 0 52 1 
1 17 1 
1 18 1 
2 2 1 2 0 
1 20 0 
2 21 1 40 0 
2 22 1 41 0 
2 23 1 42 0 
2 24 1 43 0 
1 25 0 
1 26 0 
2 27 1 46 0 
2 28...

result:

ok ok

Test #20:

score: 0
Accepted
time: 0ms
memory: 3860kb

input:

202985 296000

output:

52
2 19 1 37 1 
0 
1 2 1 
2 3 0 38 1 
2 4 0 39 1 
1 5 1 
2 6 0 41 1 
1 7 1 
1 8 1 
1 9 1 
2 10 0 45 1 
2 11 0 46 1 
2 12 0 47 1 
1 13 1 
1 14 1 
2 15 0 50 1 
2 16 0 51 1 
2 17 0 52 1 
1 18 1 
1 2 0 
1 20 0 
1 21 0 
1 22 0 
1 23 0 
1 24 0 
2 25 1 43 0 
1 26 0 
1 27 0 
1 28 0 
2 29 1 47 0 
1 30 0 
1 3...

result:

ok ok

Test #21:

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

input:

438671 951305

output:

57
2 20 1 39 1 
0 
1 2 1 
1 3 1 
1 4 1 
1 5 1 
2 6 0 43 1 
2 7 0 44 1 
2 8 0 45 1 
1 9 1 
1 10 1 
2 11 0 48 1 
2 12 0 49 1 
2 13 0 50 1 
1 14 1 
1 15 1 
2 16 0 53 1 
1 17 1 
2 18 0 55 1 
1 19 1 
2 2 1 2 0 
1 21 0 
1 22 0 
2 23 1 42 0 
1 24 0 
1 25 0 
1 26 0 
1 27 0 
1 28 0 
1 29 0 
2 30 1 49 0 
1 31...

result:

ok ok

Test #22:

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

input:

425249 739633

output:

56
2 20 1 39 1 
0 
1 2 1 
2 3 0 40 1 
2 4 0 41 1 
2 5 0 42 1 
2 6 0 43 1 
1 7 1 
2 8 0 45 1 
2 9 0 46 1 
1 10 1 
2 11 0 48 1 
1 12 1 
1 13 1 
1 14 1 
1 15 1 
1 16 1 
2 17 0 54 1 
2 18 0 55 1 
1 19 1 
2 2 1 2 0 
1 21 0 
1 22 0 
1 23 0 
2 24 1 43 0 
2 25 1 44 0 
1 26 0 
1 27 0 
2 28 1 47 0 
1 29 0 
1 ...

result:

ok ok

Test #23:

score: 0
Accepted
time: 0ms
memory: 3764kb

input:

551207 961718

output:

57
2 21 1 40 1 
0 
1 2 1 
1 3 1 
1 4 1 
2 5 0 43 1 
2 6 0 44 1 
1 7 1 
2 8 0 46 1 
2 9 0 47 1 
1 10 1 
2 11 0 49 1 
2 12 0 50 1 
1 13 1 
2 14 0 52 1 
1 15 1 
1 16 1 
2 17 0 55 1 
2 18 0 56 1 
2 19 0 57 1 
1 20 0 
1 2 0 
2 22 1 41 0 
2 23 1 42 0 
1 24 0 
2 25 1 44 0 
2 26 1 45 0 
1 27 0 
2 28 1 47 0 ...

result:

ok ok

Test #24:

score: 0
Accepted
time: 0ms
memory: 3832kb

input:

114691 598186

output:

55
4 18 1 37 1 54 1 55 1 
0 
1 2 1 
1 3 1 
2 4 0 39 1 
2 5 0 40 1 
2 6 0 41 1 
2 7 0 42 1 
2 8 0 43 1 
2 9 0 44 1 
2 10 0 45 1 
2 11 0 46 1 
2 12 0 47 1 
2 13 0 48 1 
2 14 0 49 1 
2 15 0 50 1 
1 16 1 
1 17 1 
1 2 0 
2 19 1 38 0 
1 20 0 
2 21 1 40 0 
1 22 0 
2 23 1 42 0 
1 24 0 
2 25 1 44 0 
1 26 0 
...

result:

ok ok

Test #25:

score: 0
Accepted
time: 0ms
memory: 3888kb

input:

234654 253129

output:

49
2 19 1 36 1 
0 
2 2 0 2 1 
1 3 1 
1 4 1 
1 5 1 
1 6 1 
2 7 0 41 1 
2 8 0 42 1 
1 9 1 
2 10 0 44 1 
2 11 0 45 1 
1 12 1 
2 13 0 47 1 
1 14 1 
2 15 0 49 1 
1 16 0 
1 17 1 
1 18 1 
2 2 1 2 0 
1 20 0 
1 21 0 
2 22 1 39 0 
1 23 0 
1 24 0 
2 25 1 42 0 
2 26 1 43 0 
1 27 0 
1 28 0 
2 29 1 46 0 
2 30 1 4...

result:

ok ok

Test #26:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

554090 608599

output:

55
2 21 1 40 1 
0 
2 2 0 2 1 
1 3 1 
2 4 0 42 1 
1 5 1 
2 6 0 44 1 
1 7 1 
1 8 1 
2 9 0 47 1 
2 10 0 48 1 
2 11 0 49 1 
1 12 1 
2 13 0 51 1 
1 14 1 
1 15 1 
1 16 1 
2 17 0 55 1 
1 18 0 
1 19 0 
1 20 0 
2 2 1 2 0 
2 22 1 41 0 
2 23 1 42 0 
1 24 0 
2 25 1 44 0 
1 26 0 
2 27 1 46 0 
1 28 0 
2 29 1 48 0...

result:

ok ok

Extra Test:

score: 0
Extra Test Passed