Submission #1244098

#TimeUsernameProblemLanguageResultExecution timeMemory
1244098fskaricaJail (JOI22_jail)C++20
5 / 100
4 ms4936 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define pii pair<int, int> const int MAX = 2e5 + 10; int n, m; int x, y; vector <int> veze[MAX]; vector <int> v, v2; int rek(int pos, int last) { if (pos == y) { v.push_back(pos); return 1; } for (auto e : veze[pos]) { if (e == last) continue; if (rek(e, pos)) { v.push_back(pos); return 1; } } return 0; } void input() { cin >> n; for (int i = 0; i <= n; i++) { veze[i].clear(); } for (int i = 0; i < n - 1; i++) { cin >> x >> y; veze[x].push_back(y); veze[y].push_back(x); } v.clear(), v2.clear(); cin >> m; for (int i = 0; i < m; i++) { cin >> x >> y; rek(x, -1); reverse(v.begin(), v.end()); swap(v, v2); } } void solve() { input(); // cout << "v: "; for (auto e : v) cout << e << " "; cout << "\n"; // cout << "v2: "; for (auto e : v2) cout << e << " "; cout << "\n"; bool sol = false; for (int i = 0; i < v.size(); i++) { int mog = true; for (int j = 0; j <= i; j++) if (v[j] == v2[0]) mog = false; for (int j = 0; j < v2.size(); j++) if (v2[j] == v[i]) mog = false; for (int j = i + 1; j < v.size(); j++) if (v[j] == v2.back()) mog = false; if (mog) sol = true; } if (sol) cout << "Yes\n"; else cout << "No\n"; } int main() { // ios_base::sync_with_stdio(0); // 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...