CSES - Datatähti 2021 loppu - Results
Submission details
Task:Suuremmat
Sender:caro
Submission time:2021-01-23 17:45:48 +0200
Language:C++11
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
Test results
testverdicttimegroup
#10.01 s1, 2details
#20.01 s2details

Code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    int t;
    cin >> t;
    ll tt[t];
    for(int i = 0; i < t; i++){
        cin >> tt[i];
    }
    for(int i = 0; i < t; i++){
        ll n = tt[i];
        if(n < 9){
            printf("%lld\n", n + 1);
        }
        else if(n < 99){
            n += 1;
            if((n / 10) >= (n - ((n / 10) * 10))){
                for(int j = 0; j < 2; j++){
                    printf("%lld", n / 10);
                }                        
                printf("\n");
            }
            else {
                for(int j = 0; j < 2; j++){
                    printf("%lld", n / 10 + 1);
                }                        
                printf("\n");
            }
        }
        else {
            n += 1;
            ll exp = 1;
            ll expn = 1;
            while(n / exp > 0){
                expn++;
                exp *= 10;
            }
            expn--;
            exp /= 10;
            ll minN = n / exp;
            n -= minN * exp;
            exp /= 10;
            if(n / exp < minN){
                for(int j = 0; j < expn; j++){
                    printf("%lld", minN);
                }
                printf("\n");
                continue;
            }
            else if(n / exp > minN){
                minN = n / exp;
                for(int j = 0; j < expn; j++){
                    printf("%lld", minN);
                }
                printf("\n");
                continue;
            }
            else if(n / exp == minN){
                while(exp > 0){
                    int nth = n / exp;
                    n -= nth * exp;
                    exp /= 10;
                    if(nth < minN) {
                        break;
                    }
                    else if(nth != minN){
                        minN = minN + 1;
                        break;
                    }
                }
                for(int j = 0; j < expn; j++){
                    printf("%lld", minN);
                }
                printf("\n");
                continue;
            }
            /*
            else{
                minN = n / exp;
                for(int j = 0; j < expn; j++){
                    printf("%lld", minN);
                }
                printf("\n");
                continue;
            }
            while(exp > 0){
                int nth = n / exp;
                n -= nth * exp;
                exp /= 10;
                if(nth == 0) {
                    break;
                }
                if(minN < nth){
                    minN = nth;
                    break;
                }
            }
            for(int j = 0; j < expn; j++){
                printf("%lld", minN);
            }
            printf("\n");
            */
        }
    }
    return 0;
}

Test details

Test 1

Group: 1, 2

Verdict:

input
1000
1
2
3
4
...

correct output
2
3
4
5
6
...

user output
2
3
4
5
6
...

Test 2

Group: 2

Verdict:

input
1000
735425311146082632
756615631808964686
466489470801941584
100417544394053220
...

correct output
777777777777777777
777777777777777777
555555555555555555
111111111111111111
555555555555555555
...

user output
777777777777777777
777777777777777777
666666666666666666
111111111111111111
777777777777777777
...