結果
問題 | No.92 逃走経路 |
ユーザー |
![]() |
提出日時 | 2017-06-21 16:39:25 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 648 ms / 5,000 ms |
コード長 | 1,698 bytes |
コンパイル時間 | 2,402 ms |
コンパイル使用メモリ | 80,648 KB |
実行使用メモリ | 47,300 KB |
最終ジャッジ日時 | 2024-10-02 10:53:27 |
合計ジャッジ時間 | 11,106 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
import java.util.Arrays;import java.util.Scanner;class Main {static Scanner in = new Scanner(System.in);public static void main(String[] args) {int N = in.nextInt(), M = in.nextInt(), K = in.nextInt();int[] a = new int[M + 1], b = new int[M + 1], c = new int[M + 1];for (int i = 1; i < M + 1; i++) {a[i] = in.nextInt();b[i] = in.nextInt();c[i] = in.nextInt();}int[] d = new int[K + 1];for(int i = 1; i < K + 1; i++){d[i] = in.nextInt();}boolean[][] n = new boolean[K + 1][N + 1];Arrays.fill(n[0], true);for(int i = 1; i < K + 1; i++){Arrays.fill(n[i], false);}for(int x = 1; x < K + 1; x++){for(int y = 1; y < N + 1; y++){for(int z = 1; z < M + 1; z++){if(n[x - 1][y]){if(a[z] == y && c[z] == d[x]){n[x][b[z]] = true;}if(b[z] == y && c[z] == d[x]){n[x][a[z]] = true;}}}}}int sum = 0;for(int i = 1; i < N + 1; i++){if(n[K][i]){sum++;}}System.out.println(sum);boolean t = true;for(int i = 1; i < N + 1; i++){if(t && n[K][i]){System.out.print(i);t = false;}else if(n[K][i]){System.out.print(" " + i);}}System.out.println();}}