Tarea EDA 3.1
unknown
java
4 years ago
3.0 kB
7
Indexable
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]+" ");
}
}
}
}
Editor is loading...