結果
問題 | No.92 逃走経路 |
ユーザー |
![]() |
提出日時 | 2016-02-16 20:44:16 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 5,000 ms |
コード長 | 1,089 bytes |
コンパイル時間 | 1,245 ms |
コンパイル使用メモリ | 161,324 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-22 07:18:27 |
合計ジャッジ時間 | 1,970 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include "bits/stdc++.h"using namespace std;bool now[2000];bool nex[2000];int main(){int N, M, K;cin >> N >> M >> K;vector<int> a(M), b(M), c(M);for (int i = 0; i < M; i++){cin >> a[i] >> b[i] >> c[i];a[i]--; b[i]--;}vector<int> d(K);for (int i = 0; i < K; i++){cin >> d[i];}for (int i = 0; i < N; i++){now[i] = true;nex[i] = false;}for (int i = 0; i < K; i++){for (int j = 0; j < M; j++){if (c[j] != d[i]) continue;nex[a[j]] |= now[b[j]];nex[b[j]] |= now[a[j]];}for (int j = 0; j < N; j++){now[j] = nex[j];nex[j] = false;}}int count = 0;for (int i = 0; i < N; i++){if (now[i]){count++;}}cout << count << endl;for (int i = 0; i < N; i++){if (now[i]){if (--count) cout << (i + 1) << " ";else cout << (i + 1) << endl;}}}