結果
問題 | No.92 逃走経路 |
ユーザー |
![]() |
提出日時 | 2014-12-07 20:48:13 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 128 ms / 5,000 ms |
コード長 | 2,019 bytes |
コンパイル時間 | 1,072 ms |
コンパイル使用メモリ | 118,536 KB |
実行使用メモリ | 32,668 KB |
最終ジャッジ日時 | 2024-06-11 17:05:28 |
合計ジャッジ時間 | 2,621 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections;using System.Collections.Generic;class TEST{static void Main(){Sol mySol =new Sol();mySol.Solve();}}class Sol{public void Solve(){Dictionary<int,List<Pair>> D=new Dictionary<int,List<Pair>>();for(int i=0;i<M;i++){if(!D.ContainsKey(info[i][2]))D.Add(info[i][2],new List<Pair>());D[info[i][2]].Add(new Pair(info[i][0],info[i][1]));}HashSet<int>[] H=new HashSet<int>[2];H[0]=new HashSet<int>();int now=0;int next=0;for(int i=0;i<K;i++){now=i%2;next=1-now;H[next]=new HashSet<int>();if(i==0){foreach(Pair p in D[route[i]]){H[next].Add(p.to);H[next].Add(p.from);}continue;}foreach(Pair p in D[route[i]]){if(H[now].Contains(p.from))H[next].Add(p.to);if(H[now].Contains(p.to))H[next].Add(p.from);}}List<int> L=new List<int>(H[next]);L.Sort();Console.WriteLine(L.Count);for(int i=0;i<L.Count;i++){Console.Write(i==0?"{0}":" {0}",L[i]);}Console.WriteLine();}int N,M,K;int[][] info;int[] route;public Sol(){var d=ria();N=d[0];M=d[1];K=d[2];info=new int[M][];for(int i=0;i<M;i++)info[i]=ria();route=ria();}class Pair{public int from;public int to;public Pair(int f,int t){from=f;to=t;}}static String rs(){return Console.ReadLine();}static int ri(){return int.Parse(Console.ReadLine());}static long rl(){return long.Parse(Console.ReadLine());}static double rd(){return double.Parse(Console.ReadLine());}static String[] rsa(){return Console.ReadLine().Split(' ');}static int[] ria(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>int.Parse(e));}static long[] rla(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>long.Parse(e));}static double[] rda(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>double.Parse(e));}}