제출 #1187590

#제출 시각아이디문제언어결과실행 시간메모리
1187590browntoadJail (JOI22_jail)C++20
5 / 100
32 ms3504 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define REP(i, n) FOR(i, 0, n) 
#define REP1(i, n) FOR(i, 1, n+1)
#define pii pair<int, int>
#define f first
#define s second
#define pb push_back
#define ALL(x) (x).begin(), (x).end()
#define SZ(x) (int)((x).size())
#define endl '\n'
#define IOS() ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)

const ll maxn = 5e5+5;
const ll mod = 1e9+7;
const ll inf = 1ll<<60;

ll pw(ll a, ll p){
    ll rt = 1;
    while(p > 0){
        if (p & 1){
            rt *= a;
            rt %= mod;
        }
        a *= a;
        a %= mod;
        p >>= 1;
    }
    return rt;
}
ll inv(int a){
    return pw(a, mod-2);
}

signed main(){
    IOS();
    int Q; cin>>Q;
    while(Q--){
        int n; cin>>n;
        REP(i, n-1){
            int u,v; cin>>u>>v;
        }
        int m; cin>>m;
        vector<pii> rng1, rng2;
        REP(i, m){
            int l, r; cin>>l>>r;
            if (l < r) rng1.pb({l, r});
            else rng2.pb({r, l});
        }
        vector<int> pf(n+2);
        bool gg = false;
        for (auto pp:rng1) {
            pf[pp.f]++;
            pf[pp.s+1]--;
        }
        REP1(i, n) pf[i] += pf[i-1];
        REP1(i, n) pf[i] += pf[i-1];
        for (auto pp:rng2){
            if(pf[pp.s] - pf[pp.f-1] > 0){
                gg = 1;
                break;
            }
        }

        sort(ALL(rng1)); sort(ALL(rng2));
        int mx = 0;
        for (auto pp:rng1){
            if(mx > pp.s){
                gg = 1;
                break;
            }
            mx = max(mx, pp.s);
        }
        mx = 0;
        for (auto pp:rng2){
            if (mx > pp.s) {
                gg = 1;
                break;
            }
            mx = max(mx, pp.s);
        }
        cout<<(gg?"No":"Yes")<<endl;
    }
}
#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...