이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define all(a) a.begin(), a.end()
const int N = 120000;
vector<int> g[N+1];
int n;
/*
struct Fenwick{
vector<int> fenw;
int n;
Fenwick(int sz){
n = sz;
fenw.resize(n+5, 0);
};
void add(int i, int x){
for(; i <= n; i+= i & -i){
fenw[i]+= x;
}
}
int pref(int i){
int s = 0;
for(; i > 0; i-= i & -i){
s+= fenw[i];
}
return s;
}
int sum(int l, int r){
return pref(r) - pref(l-1);
}
};
*/
void cl(){
for(int i = 1;i <= n; i++) g[i].clear();
}
void solve(){
cin >> n;
for(int i = 1;i < n; i++){
int a, b; cin >> a >> b;
g[a].push_back(b);
g[b].push_back(a);
}
int q; cin >> q;
vector< pair<int, int> > query(q);
vector<vector<int> > starts(n+1);
for(int i = 0;i < q; i++){
cin >> query[i].ff >> query[i].ss;
starts[query[i].ff].push_back(query[i].ss);
}
for(int i = 0;i < q; i++){
for(int j = query[i].ff; j <= query[i].ss; j++){
for(int ends : starts[j]){
if(ends < j){
cout << "No";
return;
}
}
}
}
cout << "Yes";
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t; cin >> t;
while(t--){
solve();
cl();
cout << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |