CSES - Putka Open 2020 – 3/5 - Results
Submission details
Task:Numerot
Sender:Mahtimursu
Submission time:2020-10-16 22:19:57 +0300
Language:C++ (C++11)
Status:READY
Result:25
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED13
#30
Test results
testverdicttimegroup
#1ACCEPTED0.42 s1, 2, 3details
#2ACCEPTED0.42 s2, 3details
#30.42 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:54:9: warning: unused variable 'prev' [-Wunused-variable]
     int prev = 0;
         ^~~~

Code

#include <iostream>
#include <bits/stdc++.h>
typedef long long ll;
#define M 1000000007
using namespace std;
int table[10000001];
int zero(int num) {
//cout << num << "\n";
if (num == 0)
return 0;
if (num < 0) return 1e9;
if (table[num]) {
return table[num];
}
int m = 1e9;
int t = num;
while (t > 0) {
int d = t % 10;
t /= 10;
if (d == 0) continue;
m = min(zero(num - d) + 1, m);
}
table[num] = m;
return m;
}
int ans[1000001];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
for (int i = 1; i <= 7864342; ++i) {
zero(i);
}
// fill
int num = 1;
for (int i = 1; i <= 1000000; ++i) {
while (table[num] < i) num++;
ans[i] = num;
}
int prev = 0;
for (int i = 1; i <= n; ++i) {
int x;
cin >> x;
cout << ans[x] << "\n";
}
return 0;
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
1000
1
2
3
4
...

correct output
1
10
11
20
22
...

user output
1
10
11
20
22
...
Truncated

Test 2

Group: 2, 3

Verdict: ACCEPTED

input
1000
224995
413660
249827
2125
...

correct output
1731724
3216040
1940719
14585
532612
...

user output
1731724
3216040
1940719
14585
532612
...
Truncated

Test 3

Group: 3

Verdict:

input
1000
627887018110416188
785474884983906653
653772166720939773
784335285960673683
...

correct output
5530371754830260284
6918696171534226533
5757755627065159149
6908439780325129803
3223801064342340738
...

user output
(empty)