Olá, pessoal!
Tenho uma base em C e estou iniciando Java agora.
Estou resolvendo exercícios do URI Online Judge e estou travado nesse (https://www.urionlinejudge.com.br/judge/pt/problems/view/1574) há um bom tempo.
Mesmo inserindo n = 5, por exemplo, a execução mais interna ocorre apenas 4 vezes e quando coloco SAME AS (algum número) dá o erro:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Robo.setSeparado(Robo.java:24)
at Robo.main(Robo.java:37)
Meu código:
import java.util.Scanner;
public class Robo{
private static Scanner scan = new Scanner (System.in);
private static int p;
private static byte T, n;
private static String separado = new String();
private static String[] cmd;
public static void incrementaP (){
p++;
}
public static void decrementaP (){
p--;
}
public static void resetaP (){
p = 0;
}
public static void setSeparado(String[] inst){
separado = inst[3];
}
public static void main(String[] args) {
byte i, j;
T = scan.nextByte();
for (i = 0; i < T; i++){
n = scan.nextByte();
cmd = new String[n];
for (j = 0; j < n; j++){
cmd[j] = scan.nextLine();
if (cmd[j].length() > 5){
setSeparado(cmd[j].split(" "));
cmd[j] = cmd[Integer.parseInt(separado)];
}
if (cmd[j].equals("LEFT"))
decrementaP();
else
incrementaP();
}
System.out.print(p);
resetaP();
}
}
}
Agradeço muito qualquer ajuda!