結果
問題 | No.92 逃走経路 |
ユーザー |
|
提出日時 | 2014-12-07 23:56:48 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 5,000 ms |
コード長 | 904 bytes |
コンパイル時間 | 578 ms |
コンパイル使用メモリ | 56,488 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-11 17:50:33 |
合計ジャッジ時間 | 1,248 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include <iostream>#include <cstring>using namespace std;bool pos[2][111];int a[1111], b[1111], c[1111];int main(){int N, M, K;cin >> N >> M >> K;for(int i=0;i<M;i++){cin >> a[i] >> b[i] >> c[i];--a[i];--b[i];}int curr = 0, next = 1;memset(pos[curr], true, sizeof(pos[curr]));for(int i=0;i<K;i++){int d;cin >> d;memset(pos[next], false, sizeof(pos[next]));for(int j=0;j<M;j++)if(c[j] == d){pos[next][a[j]] |= pos[curr][b[j]];pos[next][b[j]] |= pos[curr][a[j]];}swap(curr, next);}int cnt = 0;for(int i=0;i<N;i++)cnt += pos[curr][i];cout << cnt << endl;for(int i=0;i<N;i++)if(pos[curr][i])cout << (i + 1) << " ";return 0;}