UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#202109#2784. 01串tkswls100545ms1256kbC++11995b2024-02-12 08:23:072024-02-12 18:48:38

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t, n, cnt, lst, len, ccnt;
inline int solve(int l, int r) {
	if (l > r) return  0;
	return (l + r) * (r - l + 1) / 2;
}
signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> t;
	while (t--) {
		cin >> n;
		if (n == 0) {
			cout << 1 << "\n";
			continue;
		}
		len = 1;
		while (solve(1, len - 1) < n) {
			len++;
		}
		cout << 0;
		cnt = n, lst = 0, ccnt = 1;
		for (int i = 2; i <= len; i++) {
//			cout << ccnt << ' ' << i << " " << n - i << " " << n - i - 1 << " " << solve(1, n - i - 1) << " " << cnt << ' ';
			if (cnt && i == len) {
				cout << (lst ^ 1 );
				break;
			} else if (i == len) {
				cout << lst;
				break;
			} else if ((ccnt + 1) * (len - i) + solve(1, len - i - 1) >= cnt) {
				cout << lst ;
				ccnt++;
			} else {
				cout << (lst ^ 1) ;
				cnt -= ccnt * (len - i + 1);
				ccnt = 1;
				lst ^= 1;
			}
		}
		cout << "\n";
	}
}

Details

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 8
Accepted

Test #1:

score: 8
Accepted
time: 0ms
memory: 1252kb

input:

500
13
7
6
20
1
18
17
19
9
15
10
12
9
8
11
15
3
14
7
9
7
17
16
19
18
7
11
14
6
5
17
3
11
7
2
20
7
7
...

output:

001101
00010
0101
0010101
01
0001010
0001101
0011010
00101
010101
01010
000101
00101
00110
000110
01...

result:

points 1.0 Accepted

Subtask #2:

score: 21
Accepted

Test #2:

score: 21
Accepted
time: 1ms
memory: 1252kb

input:

500
933
647
306
780
621
898
757
879
89
95
790
72
469
828
171
515
623
934
687
589
147
417
816
939
758...

output:

00000111010101010101010101010101010101010101
0000001110010101010101010101010101010
00000011100101010...

result:

points 1.0 Accepted

Subtask #3:

score: 23
Accepted

Test #3:

score: 23
Accepted
time: 5ms
memory: 1256kb

input:

500
84933
1647
40306
72780
90621
15898
73757
86879
66089
93095
5790
43072
69469
44828
60171
14515
68...

output:

0000000000000000011110001010101010101010101010101010101010101010101010101010101010101010101010101010...

result:

points 1.0 Accepted

Subtask #4:

score: 48
Accepted

Test #4:

score: 48
Accepted
time: 539ms
memory: 1256kb

input:

500
253484933
463401647
466040306
780172780
189090621
382815898
292073757
119686879
18566089
2984930...

output:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

result:

points 1.0 Accepted

Extra Test:

score: 0
Extra Test Passed