이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
컴파일 시 표준 에러 (stderr) 메시지
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 |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |