Untitled
unknown
plain_text
a year ago
1.1 kB
5
Indexable
#include <iostream> #include <queue> #include <cstring> #define vi vector<int> #define pb push_back using namespace std; int t, n, m, u, v, x, y; vi a[1001]; int visit[1001]; int cha[1001]; vi ans; void bfs(int d){ memset(visit, 0, sizeof(visit)); memset(cha, 0, sizeof(visit)); queue<int> q; q.push(d); visit[d] = 1; while(!q.empty()){ int b = q.front(); q.pop(); for(int ke : a[b]){ if(!visit[ke]){ q.push(ke); visit[ke] = 1; cha[ke] = b; } } } } void solve(int d, int c){ bfs(d); if(!visit[c]) cout << "k co duong\n"; else{ while(c != d){ ans.pb(c); c = cha[c]; } ans.pb(d); for(int i = ans.size()-1; i >= 0; i--) cout << ans[i] << " "; cout << endl; ans.clear(); } } int main(){ freopen("dothi.inp","r",stdin); freopen("dothi.out","w",stdout); cin >> t; while(t--){ cin >> n >> m >> u >> v; for(int i = 0; i < m; i++){ cin >> x >> y; a[x].pb(y); } solve(u, v); for(int i = 1; i <= n; i++) a[i].clear(); } return 0; }
Editor is loading...
Leave a Comment