█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 5818

Problema 0x31 - Sumarle un dígito a número muy grande

  • Autor: Sugaaron
  • Fecha: 2022-03-04 03:57:37 UTC (Hace alrededor de 2 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.093 s 18 KBi
#2
Correcto
0.047 s 14 KBi
#3
Correcto
0.07 s 11 KBi
#4
Correcto
0.051 s 13 KBi
#5
Correcto
0.071 s 24 KBi
#6
Correcto
0.048 s 14 KBi
#7
Incorrecto
0.051 s 14 KBi
#8
Correcto
0.059 s 14 KBi
#9
Incorrecto
0.051 s 14 KBi
#10
Correcto
0.091 s 11 KBi
#11
Incorrecto
0.045 s 13 KBi
#12
Correcto
0.052 s 14 KBi
#13
Incorrecto
0.046 s 13 KBi
#14
Incorrecto
0.051 s 14 KBi
#15
Incorrecto
0.069 s 11 KBi
#16
Incorrecto
0.071 s 11 KBi
#17
Incorrecto
0.05 s 13 KBi
#18
Incorrecto
0.063 s 29 KBi
#19
Incorrecto
0.078 s 10 KBi
#20
Incorrecto
0.047 s 13 KBi
#21
Correcto
0.044 s 14 KBi
#22
Incorrecto
0.084 s 10 KBi
#23
Incorrecto
0.094 s 11 KBi
#24
Correcto
0.079 s 10 KBi
#25
Correcto
0.11 s 11 KBi
#26
Correcto
0.089 s 11 KBi
#27
Correcto
0.044 s 13 KBi
#28
Correcto
0.068 s 10 KBi
#29
Correcto
0.074 s 11 KBi
#30
Correcto
0.049 s 13 KBi
#31
Correcto
0.084 s 11 KBi
#32
Correcto
0.051 s 14 KBi
#33
Correcto
0.083 s 10 KBi
#34
Correcto
0.051 s 14 KBi
#35
Correcto
0.051 s 14 KBi
#36
Correcto
0.165 s 13 KBi
#37
Correcto
0.081 s 17 KBi
#38
Correcto
0.062 s 15 KBi
#39
Correcto
0.108 s 11 KBi
#40
Correcto
0.056 s 14 KBi
#41
Correcto
0.101 s 18 KBi
#42
Correcto
0.065 s 15 KBi
Puntos totales: 70 / 100

Código

import java.io.*;
import java.util.StringTokenizer;

class Main
{
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        st = new StringTokenizer(bf.readLine());
        
        StringBuilder sb = new StringBuilder();
        sb.append(st.nextToken().toString());
        sb.reverse();
        st = new StringTokenizer(bf.readLine());
        int k = Integer.parseInt(st.nextToken());
        int x = 0;
        int clave = 0;
        
        while(x<sb.length()){
            int digito = Integer.parseInt(sb.substring(x,x+1));
            if(digito+k>9 && k>0){
                String valor = Integer.toString(digito+k);
                sb.replace(x,x+1,valor.substring(1,2));
                clave=1;
                k=0;
                x++;
                continue;
            }   
            if(clave==1){
                if(digito<9){
                    sb.replace(x,x+1,Integer.toString(digito+1));  
                    break;
                }else{
                    sb.replace(x,x+1,"0");
                }
            }
            if(digito==0){
                sb.replace(x,x+1,Integer.toString(digito+k));
                clave=5;
                break;
            }
            if(digito+k<9){
                sb.replace(x,x+1,Integer.toString(digito+k));
                break;
            }
            x++;
        }
        
        int p = 0;
        sb.reverse();
        for(int i=0;i<sb.length();i++){
            if(sb.substring(i,i+1).equals("0")){
                p++;
            }
        }
        
        if(clave==5){
            System.out.print(sb);
        }else if(p==sb.length()-1 && sb.substring(0,1).equals("0") || p==sb.length() && sb.substring(0,1).equals("0")){
            System.out.print("1"+sb);
        }else{
            System.out.println(sb);   
        }
    
    }
}