#include <stdio.h>
#include <string.h>
#define N 1000000
#define D 10
int main() {
int t;
scanf("%d", &t);
while (t--) {
static int kk[N + D], kk_[D], ll[N + D], rr[N + D], qu[N];
static char cc[N + 1];
int n, m, m_, cnt, k, k_, d;
scanf("%d", &k);
n = 0;
for (d = 1; d < D; d++) {
scanf("%d", &kk[d]);
n += kk[d];
}
memset(kk_, 0, D * sizeof *kk_);
for (d = D - 1, k_ = k - 1; d >= 0; d--)
if (k_ > kk[d])
kk_[d] = kk[d], k_ -= kk[d], kk[d] = 0;
else {
kk_[d] = k_, kk[d] -= k_;
break;
}
m = D;
while (m >= 0 && kk[m - 1] == 0)
m--;
memset(ll, -1, m * sizeof *ll), memset(rr, -1, m * sizeof *rr);
cnt = n - k, d = 0;
while (1) {
if (kk[m - 1] == cnt + 1) {
cnt = 0;
while (kk[m - 1]--)
qu[cnt++] = m - 1;
break;
}
cnt -= kk[m - 1];
m_ = m;
while (kk[m - 1] > 0) {
while (d == m - 1 || kk[d] == 0)
d++;
ll[m_] = m - 1, rr[m_] = d;
if (kk[m - 1] > kk[d])
kk[m_] = kk[d], kk[m - 1] -= kk[d], kk[d] = 0;
else
kk[m_] = kk[m - 1], kk[d] -= kk[m - 1], kk[m - 1] = 0;
m_++;
}
m = m_;
}
n = 0;
while (cnt--) {
d = qu[cnt];
if (ll[d] == -1 && rr[d] == -1)
cc[n++] = d + '0';
else
qu[cnt++] = rr[d], qu[cnt++] = ll[d];
}
for (d = 0; d < D; d++)
while (kk_[d]--)
cc[n++] = d + '0';
cc[n] = 0;
printf("%s\n", cc);
}
return 0;
}
Compilation message
devil.c: In function 'main':
devil.c:10:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
10 | scanf("%d", &t);
| ^~~~~~~~~~~~~~~
devil.c:16:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
16 | scanf("%d", &k);
| ^~~~~~~~~~~~~~~
devil.c:19:4: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
19 | scanf("%d", &kk[d]);
| ^~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6488 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
34 ms |
8136 KB |
Output is correct |
2 |
Correct |
25 ms |
8024 KB |
Output is correct |
3 |
Correct |
22 ms |
8016 KB |
Output is correct |
4 |
Correct |
39 ms |
8180 KB |
Output is correct |
5 |
Correct |
6 ms |
7512 KB |
Output is correct |
6 |
Correct |
9 ms |
7516 KB |
Output is correct |
7 |
Correct |
7 ms |
7512 KB |
Output is correct |
8 |
Correct |
6 ms |
7512 KB |
Output is correct |
9 |
Correct |
6 ms |
9820 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
8024 KB |
Output is correct |
2 |
Correct |
10 ms |
7772 KB |
Output is correct |
3 |
Correct |
3 ms |
9816 KB |
Output is correct |
4 |
Correct |
3 ms |
9816 KB |
Output is correct |
5 |
Correct |
5 ms |
7512 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
6488 KB |
Output is correct |
2 |
Correct |
34 ms |
8136 KB |
Output is correct |
3 |
Correct |
25 ms |
8024 KB |
Output is correct |
4 |
Correct |
22 ms |
8016 KB |
Output is correct |
5 |
Correct |
39 ms |
8180 KB |
Output is correct |
6 |
Correct |
6 ms |
7512 KB |
Output is correct |
7 |
Correct |
9 ms |
7516 KB |
Output is correct |
8 |
Correct |
7 ms |
7512 KB |
Output is correct |
9 |
Correct |
6 ms |
7512 KB |
Output is correct |
10 |
Correct |
6 ms |
9820 KB |
Output is correct |
11 |
Correct |
21 ms |
8024 KB |
Output is correct |
12 |
Correct |
10 ms |
7772 KB |
Output is correct |
13 |
Correct |
3 ms |
9816 KB |
Output is correct |
14 |
Correct |
3 ms |
9816 KB |
Output is correct |
15 |
Correct |
5 ms |
7512 KB |
Output is correct |
16 |
Correct |
39 ms |
8260 KB |
Output is correct |
17 |
Correct |
37 ms |
8368 KB |
Output is correct |
18 |
Correct |
33 ms |
8028 KB |
Output is correct |
19 |
Correct |
56 ms |
8788 KB |
Output is correct |
20 |
Correct |
4 ms |
7516 KB |
Output is correct |
21 |
Correct |
5 ms |
7516 KB |
Output is correct |
22 |
Correct |
3 ms |
7512 KB |
Output is correct |
23 |
Correct |
4 ms |
7516 KB |
Output is correct |