TOPIC

PROBLEM 2016 - URI Fórum 1.0

URI Online Judge asked 4 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • youtube.com/FelipeMota0 replied 4 years ago

    O seu código falha nesse caso de teste

    5 1
    1000 100 1 1 1 1

    ele retorna 9900 quando deveria retornar 0. Pensa melhor na lógica do problema que você vai ver que tem como resolver de maneira muito mais simples.

  • Domitila Crispim Pietropaolo replied 4 years ago

    #include <bits/stdc++.h>
    int main (){
        int a, s, d, f, g, lim, sum, tm=0, gn=0;
        scanf ("%d %d", &a, &s);
        while (s--){
            sum=0;
    
            scanf ("%d", &lim);
            for (int iu=0; iu<a; iu++){
                scanf ("%d", &f);
                sum=sum+f;
                if (iu==0) g=f;
            }
            if (sum<lim){
                tm=tm+g;
                sum=sum-g;
                while (1){
                    g=g*10;
                    if (g>10001) {
                        g=g/10;
                        gn=gn+g;
                        break;
                    }
                    if (sum+g<=lim) {
    
                        gn=gn+g;
                        break;
                    }
    
                }           
            }
            else if (sum==lim) tm=tm+g;
            else {
                sum=sum-g;
                while (1){
                    g=g/10;
                    if (g<1) break;
                    if (sum+g<=lim){
                        gn=gn+g;
                        break;  
                    }
                }
            }
        }
            printf ("%d\n", gn-tm);
    }

    WA 90%