Tarea EDA 3.1
unknown
java
2 years ago
3.0 kB
2
Indexable
Never
package tarea3_1; import java.util.*; public class Tarea3_1 { public static void main(String[] args) { //ingreso numero test Scanner a = new Scanner(System.in); int test = a.nextInt(); for (int i = 0; i < test; i++) { //ingreso numero torres y alturas Scanner b = new Scanner(System.in); int torres = b.nextInt(); Scanner c = new Scanner(System.in); String altoTorres = c.nextLine(); String aux=altoTorres; //guardar alturas en array de string String[] arrayAlturas= aux.split(" "); //convertir array string a array int int[] arrayNAlturas; arrayNAlturas=new int[torres]; for (int x = 0; x < arrayAlturas.length; x++) { int temp = Integer.valueOf(arrayAlturas[x]); arrayNAlturas[x]=temp; } //calculo de torres que ve cada guardia int[] guardias=new int[torres];; int torrealta=0; for (int j = 0; j < torres; j++) { if(j==0){ guardias[j]=1; torrealta=arrayNAlturas[j]; } else if(arrayNAlturas[j]<arrayNAlturas[j-1]){ guardias[j]=1; } else if(arrayNAlturas[j]==arrayNAlturas[j-1]){ if(arrayNAlturas[j]<torrealta){ guardias[j]=arrayNAlturas[j-1]+1; } else if(arrayNAlturas[j]==torrealta){ guardias[j]=j+1; } else{ guardias[j]=j+1; torrealta=arrayNAlturas[j]; } } else{ if(arrayNAlturas[j]<torrealta){ guardias[j]=arrayNAlturas[j]+1; int count=0; for (int k = j-1; k >=0; k--) { if(arrayNAlturas[j]>=arrayNAlturas[k]){ count++; } else{ break; } } guardias[j]=count+1; } else if(arrayNAlturas[j]==torrealta){ guardias[j]=j+1; } else{ guardias[j]=j+1; torrealta=arrayNAlturas[j]; } } } //imprime guardias for (int j = 0; j < torres; j++) { System.out.print(guardias[j]+" "); } } } }