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

Envío 1927

Problema 0xcf - Mirando al horizonte

  • Autor: c4rlosc7
  • Fecha: 2020-11-11 00:45:50 UTC (Hace alrededor de 4 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.185 s 14 KBi
#2
Correcto
0.17 s 13 KBi
#3
Correcto
0.161 s 13 KBi
#4
Correcto
0.171 s 14 KBi
#5
Correcto
0.161 s 14 KBi
#6
Tiempo límite excedido
1.052 s 113 KBi
#7
Tiempo límite excedido
1.024 s 107 KBi
#8
Tiempo límite excedido
1.08 s 97 KBi
#9
Tiempo límite excedido
1.014 s 123 KBi
#10
Tiempo límite excedido
1.025 s 98 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 = i+1; j < n; j++) {
                        if (arrayHigh[i] < arrayHigh[j]) {
                            answer = arrayHigh[j];
                            break;
                        }
                    }
                    System.out.print(" " + answer);
                }
                System.out.println();
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}