結果
問題 | No.92 逃走経路 |
ユーザー | satanic |
提出日時 | 2016-04-17 21:18:14 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,201 bytes |
コンパイル時間 | 918 ms |
コンパイル使用メモリ | 86,836 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-04 10:30:14 |
合計ジャッジ時間 | 1,789 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | AC | 2 ms
5,248 KB |
testcase_02 | AC | 1 ms
5,248 KB |
testcase_03 | AC | 2 ms
5,248 KB |
testcase_04 | AC | 1 ms
5,248 KB |
testcase_05 | AC | 3 ms
5,248 KB |
testcase_06 | AC | 4 ms
5,248 KB |
testcase_07 | AC | 4 ms
5,248 KB |
testcase_08 | AC | 2 ms
5,248 KB |
testcase_09 | AC | 4 ms
5,248 KB |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
ソースコード
#include <iostream> #include <vector> #include <utility> #include <queue> #include <algorithm> #define SHOW(d) {std::cout<<#d<<"\t:"<<d<<"\n";} #define SHOWTOWN(t) {\ for(size_t i=0;i<t.size();++i){\ std::cout<<i<<":\n";\ for(size_t j=0;j<t[i].size();++j){\ std::cout<<"\t("<<t[i][j].first<<", "<<t[i][j].second<<")\n";\ }\ }\ } #define SHOWQUEUE(a) {\ auto t = a.front();\ std::queue<decltype(t)> tmp(a);\ std::cout << #a << "\t:";\ for(size_t i=0; i<a.size(); ++i){\ std::cout << tmp.front() << " ";\ tmp.pop();\ }\ std::cout << "\n";\ } class Comp{ private: int mValue; public: Comp(int v) : mValue(v){} bool operator()(const std::pair<int, int>& t) const{ return mValue==t.second; } }; int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); int n, m, k; std::cin >> n >> m >> k; std::vector<std::vector<std::pair<int, int>>> town(n); for(int i=0; i<m; ++i){ int a, b, c; std::cin >> a >> b >> c; town[a-1].push_back(std::make_pair(b-1, c)); town[b-1].push_back(std::make_pair(a-1, c)); } //SHOWTOWN(town); std::queue<int> searchQueue; for(int i=0; i<n; ++i){ searchQueue.push(i); } for(int i=0; i<k; ++i){ int d; std::cin >> d; int queueSize = searchQueue.size(); for(int j=0; j<queueSize; ++j){ int searchNum = searchQueue.front(); std::vector<std::pair<int, int>> t(town[searchNum]); searchQueue.pop(); auto it = std::find_if(t.begin(), t.end(), Comp(d)); if(it!=t.end()){ searchQueue.push(it->first); } } //SHOW(i); //SHOWQUEUE(searchQueue); } int searchQueueNum = searchQueue.size(); std::vector<int> ans(searchQueueNum); for(int i=0; i<searchQueueNum; ++i){ ans[i]=searchQueue.front(); searchQueue.pop(); } std::sort(ans.begin(), ans.end()); std::cout << searchQueueNum << "\n"; for(auto i : ans){ std::cout << i+1 << " "; } std::cout << "\n"; return 0; }