제출 #1244098

#제출 시각아이디문제언어결과실행 시간메모리
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...