답안 #890867

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
890867 2023-12-22T04:30:33 Z vjudge1 Jail (JOI22_jail) C++17
0 / 100
7 ms 3164 KB
#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<pair<int, 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, i});
	}
	for(int i = 0;i < q; i++){
		for(int j = query[i].ff; j <= query[i].ss; j++){
			for(auto [ends, pos] : starts[j]){
				if(pos == i) continue;
				if(ends < query[i].ff){
					cout << "No";
					return;
				}
				if(ends > query[i].ff && ends < query[i].ss){
					cout << "No";
					return;
				}
			}
		}
		for(int j = query[i].ff; j >= query[i].ss; j--){
			for(auto [ends, pos] : starts[j]){
				if(pos == i) continue;
				if(ends > query[i].ss && ends < query[i].ff){
					cout << "No";
					return;
				}
				if(ends > query[i].ss){
					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;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3160 KB Output is correct
2 Correct 1 ms 3160 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Incorrect 7 ms 3164 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3164 KB Output is correct
2 Correct 1 ms 3164 KB Output is correct
3 Incorrect 1 ms 3164 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3164 KB Output is correct
2 Correct 1 ms 3164 KB Output is correct
3 Incorrect 1 ms 3164 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3164 KB Output is correct
2 Correct 1 ms 3164 KB Output is correct
3 Incorrect 1 ms 3164 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3164 KB Output is correct
2 Correct 1 ms 3164 KB Output is correct
3 Incorrect 1 ms 3164 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3160 KB Output is correct
2 Correct 1 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Incorrect 4 ms 3164 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3160 KB Output is correct
2 Correct 1 ms 3160 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Incorrect 7 ms 3164 KB Output isn't correct
5 Halted 0 ms 0 KB -