This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
struct X {
int three;
int five;
int eight;
int sum;
} x[1000001];
int main(void)
{
int T, n, i;
x[3].three = 1;
x[3].sum = 1;
x[5].five = 1;
x[5].sum = 1;
x[6].three = 2;
x[6].sum = 2;
x[8].eight = 1;
x[8].sum = 1;
for(i = 9; i <= 1000000; i++)
{
if(x[i - 3].sum)
{
x[i] = x[i - 3];
x[i].three++;
}
if(x[i - 5].sum && (x[i].sum == 0 || x[i - 5].sum < x[i].sum))
{
x[i] = x[i - 5];
x[i].five++;
}
if(x[i - 8].sum && (x[i].sum == 0 || x[i - 8].sum < x[i].sum))
{
x[i] = x[i - 8];
x[i].eight++;
}
x[i].sum++;
}
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
if(x[n].sum)
{
for(i = 0; i < x[n].three; i++)
printf("3");
for(i = 0; i < x[n].five; i++)
printf("5");
for(i = 0; i < x[n].eight; i++)
printf("8");
}
else
printf("-1");
printf("\n");
}
}
# | 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... |