Submission
Status:
[PPPPP-SSSS][-SSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/30}{0/70}
Score: 0
User: aorta
Problemset: 03.Looper
Language: cpp
Time: 0.002 second
Submitted On: 2025-05-31 17:02:16
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MxN = 1010;
vector<int> adj[MxN];
queue<int> q;
int dist[MxN];
inline void solve() {
int n, m, k, s;
cin >> n >> m >> k >> s;
for(int i=1, u, v; i<=m; ++i) {
cin >> u >> v;
adj[u].emplace_back(v);
}
memset(dist, -1, sizeof dist);
q.emplace(s);
dist[s] = 0;
while(!q.empty()) {
int u = q.front(); q.pop();
for(auto v: adj[u]) {
if(dist[v] != -1) {
continue;
}
q.emplace(v);
dist[v] = dist[u] + 1;
}
}
if(dist[s] != -1) {
cout << 0 << " "<< s << "\n";
}
for(int i=1; i<=n; ++i) {
adj[i].clear();
}
return ;
}
signed main(int argc, char *argv[]) {
cin.tie(nullptr)->ios::sync_with_stdio(false);
int q;
cin >> q;
while(q--) {
solve();
}
return 0;
}