Dúvida - Exercício do URI Online Judge

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!

Está tentando acessar a posição 3 de um vetor o qual não possui a posição, é menor.

Tem razão. Foi um erro bem bobo. Obrigado!

Porém, como tinha dito, a repetição de j até n não acontece como deveria…