QOJ.ac
QOJ
QOJ is currently under a maintenance. It might be unavailable in the following a few hours.
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#719126 | #2511. Pyramid | yuto1115# | AC ✓ | 22ms | 1668kb | C++20 | 673b | 2024-11-06 22:37:25 | 2024-11-06 22:37:26 |
Judging History
answer
#include <cstdio>
const int N = 10005;
int t, n, a[N], k;
int main() {
scanf("%d", &t);
while (t--) {
scanf("%d%d", &n, &k);
a[0] = k - 1;
int start = 0, end = 1, len = 0, ans = 0;
for (int i = 1; i < n; ++i) {
if (a[ans] & 1) ans += 1;
if (i) {
for (int j = end; j > start; --j) {
a[j] += a[j - 1] >> 1;
a[j - 1] -= a[j - 1] >> 1;
}
while (a[start] == 1) ++start;
while (a[end]) ++end;
}
/*
for (int i = 0; i < end; ++i) printf("%d ", a[i]);
printf("\n");
printf("# %d %d\n", i, ans);
printf("\n");
printf("\n");
*/
}
printf("%d\n", ans);
for (int i = 0; i <= n + 1; ++i) a[i] = 0;
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 1540kb
input:
2 5 1 5 2
output:
0 1
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 1536kb
input:
3 5 3 5 4 5 5
output:
2 3 2
result:
ok 3 lines
Test #3:
score: 0
Accepted
time: 22ms
memory: 1668kb
input:
20 10000 100000000 9999 98987654 1234 5678 5000 20091234 1 100 1 101 7777 77777777 5890 98767897 106 67898765 2 4 9999 98987655 9999 98987656 9999 98987657 9999 98987658 9999 98987659 9999 98987660 9999 98987661 9999 98987662 9999 98987663 9999 98987664
output:
4931 5021 614 2506 0 0 3971 2907 50 1 4968 5044 5049 5002 4998 4984 5055 5045 4991 5037
result:
ok 20 lines