ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#202109 | #2784. 01串 | tkswls | 100 | 545ms | 1256kb | C++11 | 995b | 2024-02-12 08:23:07 | 2024-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