QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#679283#9519. Build a Computerucup-team296#AC ✓0ms3856kbC++201.7kb2024-10-26 17:17:032024-10-26 17:17:04

Judging History

This is the latest submission verdict.

  • [2024-10-26 17:17:04]
  • Judged
  • Verdict: AC
  • Time: 0ms
  • Memory: 3856kb
  • [2024-10-26 17:17:03]
  • Submitted

answer

#include <bits/stdc++.h>
#define long long long int
#define DEBUG
using namespace std;

// @author: pashka

const int NO = 1000;

vector<pair<pair<int, int>, int>> e;
int n1 = 0;
int n2 = 1;

int go(int l, int r, int d) {
    if (r < l) return NO;
    assert((l & (1 << d)) == (r & (1 << d)));
    l = l & ((1 << d) - 1);
    r = r & ((1 << d) - 1);
//    cout << l << " " << r << " " << d << "\n";
    if (l == 0 && (r == (1 << d) - 1)) {
        n2 = max(n2, d + 1);
        return -d;
    }
    int x = 2 + n1;
    n1++;
    int m = 1 << (d - 1);
    int y = go(l, min(m - 1, r), d - 1);
    if (y != NO) {
        e.push_back({{x, y}, 0});
    }
    y = go(max(m, l), r, d - 1);
    if (y != NO) {
        e.push_back({{x, y}, 1});
    }
    return x;
}

int main() {
    ios::sync_with_stdio(false);

    int l, r;
    cin >> l >> r;
    for (int d = 1; d <= 20; d++) {
        int ll = 1 << (d - 1);
        int rr = (1 << d) - 1;
        int x = go(max(l, ll), min(r, rr), d - 1);
        if (x != NO) {
            e.push_back({{1, x}, 1});
        }
    }
    int n = n1 + n2 + 1;
    vector<vector<pair<int, int>>> g(n + 1);
    for (auto [ee, w] : e) {
        auto [x, y] = ee;
        if (y <= 0) y = 2 + n1 + (-y);
        g[x].push_back({y, w});
    }
    for (int i = 0; i < n2 - 1; i++) {
        g[n - i].push_back({n - i - 1, 0});
        g[n - i].push_back({n - i - 1, 1});
    }
    cout << n << "\n";
    for (int i = 1; i <= n; i++) {
        cout << g[i].size() << " " ;
        for (auto [y, w] : g[i]) {
            cout << y << " " << w << " ";
        }
        cout << "\n";
    }


    return 0;
}

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

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

5 7

output:

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

result:

ok ok

Test #2:

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

input:

10 27

output:

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

result:

ok ok

Test #3:

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

input:

5 13

output:

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

result:

ok ok

Test #4:

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

input:

1 1000000

output:

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

result:

ok ok

Test #5:

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

input:

1 1

output:

2
1 2 1 
0 

result:

ok ok

Test #6:

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

input:

7 9

output:

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

result:

ok ok

Test #7:

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

input:

3 7

output:

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

result:

ok ok

Test #8:

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

input:

1 5

output:

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

result:

ok ok

Test #9:

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

input:

1 4

output:

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

result:

ok ok

Test #10:

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

input:

8 9

output:

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

result:

ok ok

Test #11:

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

input:

7 51

output:

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

result:

ok ok

Test #12:

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

input:

51 79

output:

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

result:

ok ok

Test #13:

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

input:

92 99

output:

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

result:

ok ok

Test #14:

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

input:

27 36

output:

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

result:

ok ok

Test #15:

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

input:

55 84

output:

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

result:

ok ok

Test #16:

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

input:

297208 929600

output:

54
2 2 1 17 1 
2 3 0 53 1 
2 4 0 52 1 
1 5 1 
2 6 0 50 1 
2 7 0 49 1 
2 8 0 48 1 
1 9 1 
2 10 0 46 1 
2 11 0 45 1 
2 12 0 44 1 
1 13 1 
1 14 1 
1 15 1 
1 16 1 
1 39 1 
2 54 0 18 1 
2 53 0 19 1 
1 20 0 
1 21 0 
1 22 0 
2 49 0 23 1 
1 24 0 
2 47 0 25 1 
2 46 0 26 1 
2 45 0 27 1 
2 44 0 28 1 
1 29 0 
2...

result:

ok ok

Test #17:

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

input:

45728 589156

output:

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

result:

ok ok

Test #18:

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

input:

129152 138000

output:

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

result:

ok ok

Test #19:

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

input:

245280 654141

output:

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

result:

ok ok

Test #20:

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

input:

202985 296000

output:

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

result:

ok ok

Test #21:

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

input:

438671 951305

output:

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

result:

ok ok

Test #22:

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

input:

425249 739633

output:

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

result:

ok ok

Test #23:

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

input:

551207 961718

output:

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

result:

ok ok

Test #24:

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

input:

114691 598186

output:

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

result:

ok ok

Test #25:

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

input:

234654 253129

output:

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

result:

ok ok

Test #26:

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

input:

554090 608599

output:

48
1 2 1 
1 3 0 
1 4 0 
2 5 0 20 1 
2 6 0 48 1 
1 7 1 
1 8 1 
1 9 1 
2 10 0 44 1 
1 11 1 
2 12 0 42 1 
2 13 0 41 1 
2 14 0 40 1 
1 15 1 
1 16 1 
2 17 0 37 1 
1 18 1 
2 19 0 35 1 
1 34 1 
1 21 0 
2 47 0 22 1 
1 23 0 
1 24 0 
2 44 0 25 1 
1 26 0 
1 27 0 
2 41 0 28 1 
1 29 0 
2 39 0 30 1 
1 31 0 
2 37 ...

result:

ok ok

Extra Test:

score: 0
Extra Test Passed