結果
| 問題 |
No.92 逃走経路
|
| コンテスト | |
| ユーザー |
holeguma
|
| 提出日時 | 2015-08-17 23:45:24 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,502 bytes |
| コンパイル時間 | 2,888 ms |
| コンパイル使用メモリ | 80,256 KB |
| 実行使用メモリ | 56,240 KB |
| 最終ジャッジ日時 | 2024-07-18 10:05:35 |
| 合計ジャッジ時間 | 5,374 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 2 |
| other | WA * 18 |
ソースコード
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;
class Main{
static final PrintWriter out=new PrintWriter(System.out);
public static class Edge{
int from;
int to;
public Edge(int from,int to){
this.from=from; this.to=to;
}
}
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String[] values=br.readLine().split(" ");
int n=Integer.parseInt(values[0]);
int m=Integer.parseInt(values[1]);
int k=Integer.parseInt(values[2]);
ArrayList<Edge> array;
boolean[][] pos=new boolean[k][n+1];
int[] place=new int[n];
HashMap<Integer,ArrayList<Edge>> map=new HashMap<Integer,ArrayList<Edge>>();
for(int i=0;i<m;i++){
values=br.readLine().split(" ");
int a=Integer.parseInt(values[0]);
int b=Integer.parseInt(values[1]);
int c=Integer.parseInt(values[2]);
if(!map.containsKey(c)) array=new ArrayList<Edge>();
else array=map.get(c);
array.add(new Edge(a,b));
array.add(new Edge(b,a));
map.put(c,array);
}
StringTokenizer st=new StringTokenizer(br.readLine());
for(int i=0;i<k;i++){
int d=Integer.parseInt(st.nextToken());
array=map.get(d);
for(int j=0;j<array.size();j++){
Edge e=array.get(j);
if(i==0) pos[0][e.to]=true;
else{
if(pos[i-1][e.from]) pos[i][e.to]=true;
}
}
}
int cnt=0;
for(int i=1;i<=n;i++){
if(pos[k-1][i]){
cnt++;
place[cnt-1]=i;
}
}
out.println(cnt);
for(int i=0;i<cnt;i++){
if(i==cnt-1) out.println(place[i]);
out.print(place[i]+" ");
}
out.flush();
}
}
holeguma