QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#682428#9519. Build a Computerucup-team918#AC ✓0ms3704kbC++171.6kb2024-10-27 15:25:092024-10-27 15:25:10

Judging History

This is the latest submission verdict.

  • [2024-10-27 15:25:10]
  • Judged
  • Verdict: AC
  • Time: 0ms
  • Memory: 3704kb
  • [2024-10-27 15:25:09]
  • Submitted

answer

#include <bits/stdc++.h>
#define cerr cout << "in " << __LINE__ << "\t: "
using namespace std;
#define lg(x) (31 ^ __builtin_clz(x))
int tot = 0;
vector<pair<int, int>> e[110];
int solve(int dep, int l, int r, int flag = 0) {
	if (dep == -1) return 0;
	if (l == 0 && r == (1 << dep + 1) - 1)
		return -dep - 1;
	if (flag) {
		int res = ++tot;
		if (!(l >> dep & 1)) {
			int tmp = solve(dep - 1, l, min(r, (1 << dep) - 1), 1);
			e[res].push_back({tmp, 0});
		}
		if (r >> dep & 1) {
			int tmp = solve(dep - 1, max(l, 1 << dep) % (1 << dep), r % (1 << dep), 1);
			e[res].push_back({tmp, 1});
		}
		return res;
	}
	if (!(l >> dep & 1)) {
		int res = solve(dep - 1, l, min(r, (1 << dep) - 1), 0);
		if (r >> dep & 1) {
			int tmp = solve(dep - 1, max(l, 1 << dep) % (1 << dep), r % (1 << dep), 1);
			e[res].push_back({tmp, 1});
		}
		return res;
	}
	int res = ++tot;
	if (r >> dep & 1) {
		int tmp = solve(dep - 1, max(l, 1 << dep) % (1 << dep), r % (1 << dep), 1);
		e[res].push_back({tmp, 1});
	}
	return res;
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int l, r;
	cin >> l >> r;
	int dep = lg(r);
	int mn = min(0, solve(dep, l, r));
	for (int i = 1; i <= tot; i++)
		for (auto &[v, w] : e[i]) {
			mn = min(mn, v);
			if (v <= 0) v = tot + 1 - v;
		}
	for (int i = -1; i >= mn; i--) {
		e[tot + 1 - i].push_back({tot - i, 0});
		e[tot + 1 - i].push_back({tot - i, 1});
	}
	cout << tot + 1 - mn << "\n";
	for (int i = 1; i <= tot + 1 - mn; i++) {
		cout << e[i].size() << " ";
		for (auto [x, y] : e[i])
			cout << x << " " << y << " ";
		cout << "\n";
	}
	return 0;
}

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

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 3644kb

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: 3704kb

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: 3660kb

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: 3704kb

input:

1 1

output:

2
1 2 1 
0 

result:

ok ok

Test #6:

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

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: 3648kb

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: 3628kb

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: 3584kb

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: 3644kb

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: 3644kb

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: 3664kb

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: 3656kb

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: 3648kb

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: 3660kb

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: 3580kb

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: 3588kb

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: 3660kb

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: 3588kb

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: 3704kb

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: 3588kb

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: 3704kb

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: 3584kb

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: 3648kb

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: 3644kb

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: 3588kb

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