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

Envío 1926

Problema 0xcf - Mirando al horizonte

  • Autor: c4rlosc7
  • Fecha: 2020-11-11 00:30:21 UTC (Hace más de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.166 s 14 KBi
#2
Correcto
0.207 s 14 KBi
#3
Correcto
0.213 s 14 KBi
#4
Correcto
0.198 s 15 KBi
#5
Correcto
0.174 s 14 KBi
#6
Tiempo límite excedido
0.923 s 97 KBi
#7
Tiempo límite excedido
0.847 s 97 KBi
#8
Tiempo límite excedido
1.08 s 96 KBi
#9
Tiempo límite excedido
1.087 s 125 KBi
#10
Tiempo límite excedido
0.987 s 97 KBi
Puntos totales: 50 / 100

Código

/**
 * Entrada
 * El archivo de entrada contiene varios casos de prueba. En la primera línea hay un número C, el número de casos.
 * Luego siguen C casos, cada uno compuesto de 2 líneas:
 * La primera línea tiene N, el número de edificios.
 * La segunda línea tiene N números enteros: la altura ai del edificio i para todo 0 ≤ i < N. Está garantizado que ai satisface 0 ≤ ai ≤ 109.
 * 
 * Salida
 * Para cada caso, la salida debe tener una línea en el formato Case #x: v0 v1 ... vn-1, donde x es el número de caso (empezando en 1) 
 * y vi es la altura del edificio que bloquea la vista al mirar al horizonte desde el techo del edificio i, ó -1 si ningún edificio bloquea la vista.
 * 
 * Entrada de ejemplo
 * 3
 * 10
 * 4 2 1 6 3 2 5 3 1 4
 * 3
 * 1 1 2
 * 6
 * 3 3 2 2 1 1
 * 
 * Salida de ejemplo
 * Case #1: 6 6 6 -1 5 5 -1 4 4 -1
 * Case #2: 2 2 -1
 * Case #3: -1 -1 -1 -1 -1 -1
 * 
 */
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try {
            Scanner input = new Scanner(System.in);
            int c = input.nextInt();
    
            for (int caseNumber = 1; caseNumber <= c; caseNumber++) {
                System.out.print("Case #" + caseNumber + ":");
                int n = input.nextInt();
                int[] arrayHigh = new int[n];
                for (int buildingNumber = 0; buildingNumber < n; buildingNumber++) {
                    arrayHigh[buildingNumber] = input.nextInt();
                }

                for (int i = 0; i < n; i++) {
                    int answer = -1;
                    for (int j = 0; j < n; j++) {
                        if (i < j && arrayHigh[i] < arrayHigh[j]) {
                            answer = arrayHigh[j];
                            break;
                        }
                    }
                    System.out.print(" " + answer);
                }
                System.out.println();
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}