CSES - Putka Open 2020 – 3/5 - Results
Submission details
Task:Numerot
Sender:jnalanko
Submission time:2020-10-17 02:03:20 +0300
Language:C++ (C++17)
Status:READY
Result:25
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED13
#30
Test results
testverdicttimegroup
#1ACCEPTED0.25 s1, 2, 3details
#2ACCEPTED0.25 s2, 3details
#30.25 s3details

Code

#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <cmath>
//#include "stdlib_printing.hh"

using namespace std;
typedef long long LL;

LL inf = 1e18;

int main(int argc, char** argv){

    // Precalc
    vector<LL> f(1e7+1,inf);
    f[0] = 0;
    for(LL x = 1; x <= 1e7; x++){
        LL y = x;
        while(y != 0){
            LL d = y % 10; y /= 10;
            if(x - d >= 0) f[x] = min(f[x], f[x-d]+1);
        }
    }
    vector<LL> answers(1e6+1,inf);
    for(LL s = 1e7; s >= 1; s--){
        if(f[s] <= 1e6) answers[f[s]] = s;
    }

    // Solve
    LL t; cin >> t;
    while(t--){
        LL n; cin >> n;
        if(answers[n] == inf) cout << -1 << "\n";
        else cout << answers[n] << "\n";
    }

}

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)