結果
問題 | No.92 逃走経路 |
ユーザー | はまやんはまやん |
提出日時 | 2015-06-24 16:14:07 |
言語 | Java21 (openjdk 21) |
結果 |
AC
|
実行時間 | 220 ms / 5,000 ms |
コード長 | 1,400 bytes |
コンパイル時間 | 1,870 ms |
コンパイル使用メモリ | 79,324 KB |
実行使用メモリ | 58,364 KB |
最終ジャッジ日時 | 2024-07-07 17:25:58 |
合計ジャッジ時間 | 6,385 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 208 ms
57,872 KB |
testcase_01 | AC | 101 ms
52,932 KB |
testcase_02 | AC | 101 ms
52,888 KB |
testcase_03 | AC | 94 ms
52,436 KB |
testcase_04 | AC | 120 ms
54,052 KB |
testcase_05 | AC | 219 ms
58,164 KB |
testcase_06 | AC | 195 ms
57,576 KB |
testcase_07 | AC | 192 ms
57,504 KB |
testcase_08 | AC | 158 ms
56,500 KB |
testcase_09 | AC | 184 ms
57,020 KB |
testcase_10 | AC | 219 ms
58,364 KB |
testcase_11 | AC | 215 ms
57,872 KB |
testcase_12 | AC | 220 ms
58,228 KB |
testcase_13 | AC | 184 ms
56,672 KB |
testcase_14 | AC | 198 ms
56,796 KB |
testcase_15 | AC | 191 ms
56,996 KB |
testcase_16 | AC | 194 ms
56,776 KB |
testcase_17 | AC | 212 ms
57,852 KB |
testcase_18 | AC | 209 ms
57,892 KB |
testcase_19 | AC | 201 ms
57,812 KB |
ソースコード
import java.util.ArrayList; import java.util.HashSet; import java.util.Scanner; import java.util.TreeSet; public class Main { static int N, M, K; static int[] A, B, C; static int[] D; public static int solve(){ int[][] dp = new int[K+1][N+1]; for (int i = 0; i < K+1; i++) { for (int j = 0; j < N+1; j++) { dp[i][j] = 0; } } for (int i = 0; i < M; i++) { if(C[i] == D[1]) dp[1][A[i]] = dp[1][B[i]] = 1; } for (int k = 2; k <= K; k++) { for (int i = 0; i < M; i++) { if(C[i] == D[k]) { if(dp[k-1][A[i]] == 1) dp[k][B[i]] = 1; if(dp[k-1][B[i]] == 1) dp[k][A[i]] = 1; } } } TreeSet<Integer> ret = new TreeSet<Integer>(); for (int i = 1; i <= N; i++) { if(dp[K][i] == 1) ret.add(new Integer(i)); } System.out.println(ret.size()); int count = 0; for (Integer i : ret) { System.out.print(i); count++; if(count != ret.size()) System.out.print(" "); } System.out.print("\n"); return 0; } public static void main(String[] args){ Scanner S = new Scanner(System.in); N = S.nextInt(); M = S.nextInt(); K = S.nextInt(); A = new int[M]; B = new int[M]; C = new int[M]; for (int i = 0; i < M; i++) { A[i] = S.nextInt(); B[i] = S.nextInt(); C[i] = S.nextInt(); } D = new int[K+1]; for (int i = 1; i < K+1; i++) { D[i] = S.nextInt(); } solve(); } }