import java.util.Scanner; public class eks { public static void main(String[] args) { Scanner s = new Scanner(System.in); int types = s.nextInt(); int sequenceLen = s.nextInt(); String[]generations = new String[types]; for (int i = 0; i < types; i++) { int genLen = s.nextInt(); char[] gen = new char[genLen]; for (int j = 0; j < genLen; j++) { gen[j] = (char)(s.nextInt()-1); } generations[i] = String.valueOf(gen); } char[] seqBuilder = new char[sequenceLen]; for (int i = 0; i < sequenceLen; i++) { seqBuilder[i] = (char)(s.nextInt()-1); } String sequence = String.valueOf(seqBuilder); StringBuilder state = new StringBuilder(); state.append((char)0); int minute = 1; while (true) { if (state.indexOf(sequence) != -1 ) { System.out.println(minute); return; } StringBuilder sb = new StringBuilder(); state.codePoints().forEach(a -> sb.append(generations[(char)a])); state = sb; minute++; if (minute > 100) { System.out.println("-1"); return; } } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import java.util.Scanner; public class eks { public static void main(String[] args) { Scanner s = new Scanner(System.in); int types = s.nextInt(); int sequenceLen = s.nextInt(); String[]generations = new String[types]; for (int i = 0; i < types; i++) { int genLen = s.nextInt(); char[] gen = new char[genLen]; for (int j = 0; j < genLen; j++) { gen[j] = (char)(s.nextInt()-1); } generations[i] = String.valueOf(gen); } char[] seqBuilder = new char[sequenceLen]; for (int i = 0; i < sequenceLen; i++) { seqBuilder[i] = (char)(s.nextInt()-1); } String sequence = String.valueOf(seqBuilder); StringBuilder state = new StringBuilder(); state.append((char)0); int minute = 1; while (true) { if (state.indexOf(sequence) != -1 ) { System.out.println(minute); return; } StringBuilder sb = new StringBuilder(); state.codePoints().forEach(a -> sb.append(generations[(char)a])); state = sb; minute++; if (minute > 100) { System.out.println("-1"); return; } } } } |