結果
問題 | No.92 逃走経路 |
ユーザー |
![]() |
提出日時 | 2014-12-23 20:27:47 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 65 ms / 5,000 ms |
コード長 | 869 bytes |
コンパイル時間 | 576 ms |
コンパイル使用メモリ | 65,996 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-12 04:13:36 |
合計ジャッジ時間 | 1,528 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include <iostream> #include <vector> #include <list> using namespace std; int N, M, K; vector<list<pair<int, int>>> fee(105); int d[1010]; bool check(int town, int di) { for (auto& p: fee[town]) { if (p.second == d[di]) { if (di == 0) return true; if (check(p.first, di-1)) return true; } } return false; } int main() { int a, b, c; cin >> N >> M >> K; for (int i = 0; i < M; i++) { cin >> a >> b >> c; fee[a].push_back(make_pair(b, c)); fee[b].push_back(make_pair(a, c)); } for (int i = 0; i < K; i++) { cin >> d[i]; } vector<int> t; for (int i = 1; i <= N; i++) { if (check(i, K-1)) t.push_back(i); } cout << t.size() << "\n" << t[0]; for (int i = 1; i < t.size(); i++) { cout << " " << t[i]; } return 0; }