QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#729469#9519. Build a ComputerMoyouAC ✓7ms31124kbC++141.7kb2024-11-09 17:11:312024-11-09 17:11:35

Judging History

This is the latest submission verdict.

  • [2024-11-09 17:11:35]
  • Judged
  • Verdict: AC
  • Time: 7ms
  • Memory: 31124kb
  • [2024-11-09 17:11:31]
  • Submitted

answer

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
//#define int long long
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N = 1e6 + 10;

int l, r, n = 1, T = -1, ls[N], rs[N], all[N], oud[N], m, mx;
vector<PII> g[N];
void add(int a, int b, int c) {
	if(a != b) m ++, g[a].push_back({b, c});
}
void work(int u, int len) {
	mx = max(mx, len - 1);
	add(u, all[len - 1], 0);
	add(u, all[len - 1], 1);
}
int query(int fat, int fw, int u, int l, int r, int ql, int qr, int d) {
	if(d == 0) return add(fat, T, fw), T;
	if(!u || u == T) {
		u = ++ n;
		add(fat, u, fw);
	}
	if(ql <= l && qr >= r) return work(u, d), u; 
	int mid = l + r >> 1;
	if(ql <= mid) ls[u] = query(u, 0, ls[u], l, mid, ql, qr, d - 1);
	if(qr > mid) rs[u] = query(u, 1, rs[u], mid + 1, r, ql, qr, d - 1);
	return u;
}
void solve(int l, int r, int d) {
	int L = (1 << d), R = (1 << d + 1) - 1;
	if(rs[1] != T && rs[1]) query(1, 1, rs[1], L, R, l, r, d);
	else rs[1] = query(1, 1, 0, L, R, l, r, d);
}

signed main() {
	ios::sync_with_stdio(0), cin.tie(0);
	cin >> l >> r;
	all[0] = T = 101;
	for(int i = 0; i <= 20; i ++) {
		all[i] = 101 + i;
	}
	while(__lg(l) != __lg(r)) {
		solve(l, (1 << __lg(l) + 1) - 1, __lg(l));
		l = (1 << __lg(l) + 1);
	}
//	cout << l << ' ' << r << '\n';
	solve(l, r, __lg(l));
	for(int i = 0; i <= mx; i ++) {
		all[i] = ++ n;
		if(i) {
			add(all[i], all[i - 1], 0);
			add(all[i], all[i - 1], 1);
		}
	}
	cout << n << '\n';
	for(int i = 1; i <= n; i ++) {
		cout << g[i].size() << ' ';
		for(auto v : g[i]) cout << (v.x >= 101 ? all[v.x - 101] : v.x) << ' ' << v.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: 31020kb

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

input:

10 27

output:

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

result:

ok ok

Test #3:

score: 0
Accepted
time: 6ms
memory: 29780kb

input:

5 13

output:

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

result:

ok ok

Test #4:

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

input:

1 1000000

output:

44
2 27 1 2 1 
38 27 0 27 1 28 0 28 1 29 0 29 1 30 0 30 1 31 0 31 1 32 0 32 1 33 0 33 1 34 0 34 1 35 0 35 1 36 0 36 1 37 0 37 1 38 0 38 1 39 0 39 1 40 0 40 1 41 0 41 1 42 0 42 1 43 0 43 1 44 0 44 1 3 0 4 1 
2 44 0 44 1 
2 5 0 6 1 
2 43 0 43 1 
2 7 0 8 1 
2 42 0 42 1 
1 9 0 
2 10 0 11 1 
2 40 0 40 1 ...

result:

ok ok

Test #5:

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

input:

1 1

output:

2
1 2 1 
0 

result:

ok ok

Test #6:

score: 0
Accepted
time: 3ms
memory: 29508kb

input:

7 9

output:

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

result:

ok ok

Test #7:

score: 0
Accepted
time: 6ms
memory: 30340kb

input:

3 7

output:

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

result:

ok ok

Test #8:

score: 0
Accepted
time: 3ms
memory: 29196kb

input:

1 5

output:

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

result:

ok ok

Test #9:

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

input:

1 4

output:

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

result:

ok ok

Test #10:

score: 0
Accepted
time: 3ms
memory: 29668kb

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

input:

7 51

output:

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

result:

ok ok

Test #12:

score: 0
Accepted
time: 3ms
memory: 30788kb

input:

51 79

output:

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

result:

ok ok

Test #13:

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

input:

92 99

output:

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

result:

ok ok

Test #14:

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

input:

27 36

output:

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

result:

ok ok

Test #15:

score: 0
Accepted
time: 3ms
memory: 30920kb

input:

55 84

output:

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

result:

ok ok

Test #16:

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

input:

297208 929600

output:

67
1 2 1 
2 3 0 25 1 
4 4 0 24 1 67 0 67 1 
1 5 1 
2 6 0 23 1 
2 7 0 22 1 
2 8 0 21 1 
1 9 1 
2 10 0 20 1 
2 11 0 19 1 
2 12 0 18 1 
1 13 1 
1 14 1 
1 15 1 
1 16 1 
1 17 1 
2 52 0 52 1 
2 57 0 57 1 
2 58 0 58 1 
2 59 0 59 1 
2 61 0 61 1 
2 62 0 62 1 
2 63 0 63 1 
2 65 0 65 1 
4 66 0 66 1 26 0 27 1 
...

result:

ok ok

Test #17:

score: 0
Accepted
time: 7ms
memory: 29436kb

input:

45728 589156

output:

62
1 2 1 
8 3 0 17 1 60 0 60 1 61 0 61 1 62 0 62 1 
2 4 1 18 0 
1 5 1 
2 6 0 16 1 
2 7 0 15 1 
1 8 1 
2 9 0 14 1 
1 10 1 
2 11 0 13 1 
1 12 1 
2 49 0 49 1 
2 50 0 50 1 
2 52 0 52 1 
2 54 0 54 1 
2 55 0 55 1 
2 58 0 58 1 
1 19 0 
2 20 0 21 1 
2 59 0 59 1 
2 22 0 23 1 
2 58 0 58 1 
2 24 0 25 1 
2 57 0...

result:

ok ok

Test #18:

score: 0
Accepted
time: 3ms
memory: 29960kb

input:

129152 138000

output:

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

result:

ok ok

Test #19:

score: 0
Accepted
time: 3ms
memory: 29488kb

input:

245280 654141

output:

66
1 2 1 
4 3 1 66 0 66 1 19 0 
1 4 1 
2 5 0 18 1 
1 6 1 
1 7 1 
1 8 1 
1 9 1 
1 10 1 
2 11 0 17 1 
2 12 0 16 1 
2 13 0 15 1 
1 14 1 
2 53 0 53 1 
2 54 0 54 1 
2 55 0 55 1 
2 56 0 56 1 
2 62 0 62 1 
1 20 0 
2 21 0 22 1 
2 64 0 64 1 
2 23 0 24 1 
2 63 0 63 1 
2 25 0 26 1 
2 62 0 62 1 
2 27 0 28 1 
2 ...

result:

ok ok

Test #20:

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

input:

202985 296000

output:

62
1 2 1 
2 3 1 28 0 
2 4 0 27 1 
2 5 0 26 1 
2 6 0 25 1 
1 7 1 
1 8 1 
2 9 0 24 1 
2 10 0 23 1 
2 11 0 22 1 
1 12 1 
1 13 1 
1 14 1 
2 15 0 21 1 
1 16 1 
2 17 0 20 1 
2 18 0 19 1 
1 48 1 
2 48 0 48 1 
2 49 0 49 1 
2 51 0 51 1 
2 55 0 55 1 
2 56 0 56 1 
2 57 0 57 1 
2 60 0 60 1 
2 61 0 61 1 
2 62 0 ...

result:

ok ok

Test #21:

score: 0
Accepted
time: 7ms
memory: 29988kb

input:

438671 951305

output:

65
1 2 1 
2 3 1 28 0 
2 4 0 27 1 
3 5 1 64 0 64 1 
2 6 0 26 1 
1 7 1 
1 8 1 
2 9 0 25 1 
2 10 0 24 1 
2 11 0 23 1 
1 12 1 
1 13 1 
2 14 0 22 1 
2 15 0 21 1 
2 16 0 20 1 
1 17 1 
1 18 1 
1 19 1 
1 48 1 
2 51 0 51 1 
2 52 0 52 1 
2 53 0 53 1 
2 56 0 56 1 
2 57 0 57 1 
2 58 0 58 1 
2 61 0 61 1 
3 63 0 ...

result:

ok ok

Test #22:

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

input:

425249 739633

output:

70
1 2 1 
2 3 1 29 0 
2 4 0 28 1 
2 5 0 27 1 
1 6 1 
1 7 1 
1 8 1 
1 9 1 
1 10 1 
2 11 0 26 1 
1 12 1 
2 13 0 25 1 
2 14 0 24 1 
1 15 1 
2 16 0 23 1 
2 17 0 22 1 
2 18 0 21 1 
2 19 0 20 1 
1 54 1 
2 54 0 54 1 
2 55 0 55 1 
2 56 0 56 1 
2 57 0 57 1 
2 59 0 59 1 
2 60 0 60 1 
2 62 0 62 1 
2 68 0 68 1 ...

result:

ok ok

Test #23:

score: 0
Accepted
time: 7ms
memory: 29872kb

input:

551207 961718

output:

75
1 2 1 
2 3 0 31 1 
2 4 0 30 1 
2 5 0 29 1 
2 6 0 28 1 
1 7 1 
1 8 1 
2 9 0 27 1 
1 10 1 
2 11 0 26 1 
2 12 0 25 1 
1 13 1 
2 14 0 24 1 
2 15 0 23 1 
1 16 1 
2 17 0 22 1 
2 18 0 21 1 
1 19 1 
1 20 1 
1 59 1 
2 61 0 61 1 
2 62 0 62 1 
2 64 0 64 1 
2 65 0 65 1 
2 67 0 67 1 
2 68 0 68 1 
2 70 0 70 1 ...

result:

ok ok

Test #24:

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

input:

114691 598186

output:

71
1 2 1 
6 3 1 70 0 70 1 71 0 71 1 30 0 
1 4 1 
2 5 0 29 1 
2 6 0 28 1 
2 7 0 27 1 
2 8 0 26 1 
2 9 0 25 1 
2 10 0 24 1 
2 11 0 23 1 
2 12 0 22 1 
2 13 0 21 1 
2 14 0 20 1 
2 15 0 19 1 
2 16 0 18 1 
1 17 1 
1 54 1 
2 55 0 55 1 
2 56 0 56 1 
2 57 0 57 1 
2 58 0 58 1 
2 59 0 59 1 
2 60 0 60 1 
2 61 0...

result:

ok ok

Test #25:

score: 0
Accepted
time: 3ms
memory: 30820kb

input:

234654 253129

output:

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

result:

ok ok

Test #26:

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

input:

554090 608599

output:

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

result:

ok ok

Extra Test:

score: 0
Extra Test Passed