結果
問題 |
No.92 逃走経路
|
ユーザー |
|
提出日時 | 2018-03-22 16:06:24 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 5,000 ms |
コード長 | 919 bytes |
コンパイル時間 | 1,840 ms |
コンパイル使用メモリ | 166,616 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-24 20:08:11 |
合計ジャッジ時間 | 2,256 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include <bits/stdc++.h> using namespace std; struct Root { int a; int b; int c; }; Root R[ 1010 ]; int d[ 1010 ]; bool bPre[ 110 ]; bool b[ 110 ]; int main() { int i; int j; int k; int N; int M; int K; int iCnt; cin >> N; cin >> M; cin >> K; for( i = 1; i <= M; i++ ) { cin >> R[ i ].a; cin >> R[ i ].b; cin >> R[ i ].c; } for( i = 1; i <= K; i++ ) cin >> d[ i ]; for( i = 1; i <= N; i++ ) bPre[ i ] = true; for( i = 1; i <= K; i++ ) { for( k = 1; k <= N; k++ ) b[ k ] = false; for( j = 1; j <= M; j++ ) { if( d[ i ] != R[ j ].c ) continue; if( bPre[ R[ j ].a ] ) b[ R[ j ].b ] = true; if( bPre[ R[ j ].b ] ) b[ R[ j ].a ] = true; } for( k = 1; k <= N; k++ ) bPre[ k ] = b[ k ]; } iCnt = 0; for( k = 1; k <= N; k++ ) { if( b[ k ] ) iCnt++; } cout << iCnt << endl; for( i = 1; i <= N; i++ ) { if( b[ i ] ) cout << i << " "; } cout << endl; return 0; }