Submission #876848

#TimeUsernameProblemLanguageResultExecution timeMemory
876848IvkosqnJail (JOI22_jail)C++14
0 / 100
2 ms7260 KiB
#include <bits/stdc++.h> #define endl '\n' using namespace std; const int maxn = 120010; int n, m, s[maxn], f[maxn], used[maxn], bef[maxn], p[maxn]; vector<int> v[maxn], g[maxn]; void read(){ cin >> n; for(int i = 1;i <= n;i++){ v[i].clear(); g[i].clear(); } for(int i = 1;i <= n - 1;i++){ int x, y; cin >> x >> y; v[x].push_back(y); v[y].push_back(x); } cin >> m; for(int i = 1;i <= m;i++){ cin >> s[i] >> f[i]; } } void dfs(int ver){ used[ver] = 1; for(int nb : v[ver]){ if(used[nb]) continue; dfs(nb); } } bool cycle = 0; void DFS(int ver){ used[ver] = 1; for(int nb : g[ver]){ if(!used[nb]) DFS(nb); else if(used[nb] == 1) cycle = 1; } used[ver] = 2; } void solve(){ read(); for(int i = 1;i <= m;i++){ for(int j = 1;j <= m;j++){ if(i == j) continue; for(int k = 1;k <= n;k++) used[k] = 0; used[f[i]] = 1; if(used[s[j]] == 1){ g[j].push_back(i); cout << j << " " << i << endl; continue; } dfs(s[j]); if(!used[f[j]]){ g[j].push_back(i); cout << j << " " << i << endl; } } } cycle = 0; memset(used, 0, sizeof(used)); for(int i = 1;i <= n;i++){ if(!used[i]){ DFS(i); } } if(cycle) cout << "No\n"; else cout << "Yes\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while(t--){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...