QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#680183#9519. Build a Computerucup-team3670#AC ✓1ms3828kbC++171.7kb2024-10-26 20:05:152024-10-26 20:05:16

Judging History

This is the latest submission verdict.

  • [2024-10-26 20:05:16]
  • Judged
  • Verdict: AC
  • Time: 1ms
  • Memory: 3828kb
  • [2024-10-26 20:05:15]
  • Submitted

answer

#include <bits/stdc++.h>

#define forn(i, n) for (int i = 0; i < int(n); ++i)
#define fore(i, l, r) for (int i = int(l); i < int(r); ++i)

using namespace std;

const int M = 1 << 25;

struct edge{
	int v, u, c;
};

vector<edge> e;
int mn;

int get2(int v, int l, int r, int L, int R){
	if (L >= R)
		return -1;
	if (l == L && r == R){
		int x = 20 - __builtin_ctz(r - l);
		mn = min(mn, x);
		return M + x;
	}
	int m = (l + r) / 2;
	int t;
	if ((t = get2(v * 2, l, m, L, min(m, R))) != -1)
		e.push_back({v, t, 0});
	if ((t = get2(v * 2 + 1, m, r, max(m, L), R)) != -1)
		e.push_back({v, t, 1});
	return v;
}

void get(int v, int l, int r, int L, int R){
	if (L >= R) return;
	if (l == r - 1) return;
	int m = (l + r) / 2;
	get(v * 2, l, m, L, min(m, R));
	int t;
	if ((t = get2(v * 2 + 1, m, r, max(m, L), R)) != -1)
		e.push_back({0, t, 1});
}

int main(){
	cin.tie(0);
	ios::sync_with_stdio(false);
	int l, r;
	cin >> l >> r;
	++r;
	mn = 20;
	get(1, 0, 1 << 20, l, r);
	fore(i, mn, 20){
		e.push_back({M + i, M + i + 1, 0});
		e.push_back({M + i, M + i + 1, 1});
	}
	vector<int> xs;
	for (auto it : e){
		xs.push_back(it.v);
		xs.push_back(it.u);
	}
	sort(xs.begin(), xs.end());
	xs.resize(unique(xs.begin(), xs.end()) - xs.begin());
	for (auto& it : e){
		it.v = lower_bound(xs.begin(), xs.end(), it.v) - xs.begin();
		it.u = lower_bound(xs.begin(), xs.end(), it.u) - xs.begin();
	}
	int n = xs.size();
	vector<vector<edge>> g(n);
	for (auto it : e) g[it.v].push_back(it);
	cout << n << '\n';
	forn(i, n){
		cout << g[i].size();
		for (auto it : g[i]) cout << " " << it.u + 1 << " " << it.c;
		cout << '\n';
	}
}

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

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

5 7

output:

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

result:

ok ok

Test #2:

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

input:

10 27

output:

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

result:

ok ok

Test #3:

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

input:

5 13

output:

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

result:

ok ok

Test #4:

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

input:

1 1000000

output:

39
20 39 1 38 1 37 1 36 1 35 1 34 1 33 1 32 1 31 1 30 1 29 1 28 1 27 1 26 1 25 1 24 1 23 1 22 1 21 1 2 1
2 21 0 3 1
2 22 0 4 1
2 23 0 5 1
1 6 0
2 25 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 33 0 15 1
1 16 0
1 17 0
1 18 0
1 19 0
1 20 0
1 39 0
2 22 0 22 1
2 23 0 23 1
2 24 0 24 1
2 2...

result:

ok ok

Test #5:

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

input:

1 1

output:

2
1 2 1
0

result:

ok ok

Test #6:

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

input:

7 9

output:

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

result:

ok ok

Test #7:

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

input:

3 7

output:

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

result:

ok ok

Test #8:

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

input:

1 5

output:

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

result:

ok ok

Test #9:

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

input:

1 4

output:

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

result:

ok ok

Test #10:

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

input:

8 9

output:

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

result:

ok ok

Test #11:

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

input:

7 51

output:

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

result:

ok ok

Test #12:

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

input:

51 79

output:

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

result:

ok ok

Test #13:

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

input:

92 99

output:

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

result:

ok ok

Test #14:

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

input:

27 36

output:

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

result:

ok ok

Test #15:

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

input:

55 84

output:

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

result:

ok ok

Test #16:

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

input:

297208 929600

output:

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

result:

ok ok

Test #17:

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

input:

45728 589156

output:

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

result:

ok ok

Test #18:

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

input:

129152 138000

output:

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

result:

ok ok

Test #19:

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

input:

245280 654141

output:

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

result:

ok ok

Test #20:

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

input:

202985 296000

output:

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

result:

ok ok

Test #21:

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

input:

438671 951305

output:

56
2 3 1 2 1
2 38 0 4 1
1 5 1
2 39 0 6 1
2 7 0 40 1
1 8 0
1 9 1
2 41 0 10 1
2 11 0 42 1
1 12 0
1 13 1
1 14 0
1 15 1
1 16 0
2 17 0 45 1
1 18 0
2 19 0 46 1
2 46 0 20 1
2 21 0 47 1
1 22 0
1 23 1
1 24 0
1 25 1
1 26 0
2 27 0 50 1
1 28 0
2 29 0 51 1
1 30 0
2 31 0 52 1
1 32 0
1 33 1
2 53 0 34 1
1 35 1
1 36...

result:

ok ok

Test #22:

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

input:

425249 739633

output:

55
2 3 1 2 1
1 4 0
1 5 1
2 38 0 6 1
2 7 0 39 1
2 39 0 8 1
2 9 0 40 1
1 10 0
1 11 1
2 41 0 12 1
1 13 1
1 14 0
1 15 1
1 16 0
1 17 1
2 44 0 18 1
1 19 1
1 20 0
2 21 0 46 1
1 22 0
1 23 1
2 47 0 24 1
2 25 0 48 1
1 26 0
2 27 0 49 1
1 28 0
1 29 1
2 50 0 30 1
2 31 0 51 1
2 51 0 32 1
2 33 0 52 1
1 34 0
2 35 0...

result:

ok ok

Test #23:

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

input:

551207 961718

output:

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

result:

ok ok

Test #24:

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

input:

114691 598186

output:

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

result:

ok ok

Test #25:

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

input:

234654 253129

output:

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

result:

ok ok

Test #26:

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

input:

554090 608599

output:

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

result:

ok ok

Extra Test:

score: 0
Extra Test Passed