제출 #1279406

#제출 시각아이디문제언어결과실행 시간메모리
1279406muhammad-ahmadCurtains (NOI23_curtains)C++20
0 / 100
1595 ms12952 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define endl '\n'

const int inf = 1e9;

signed main(){
	int n, m, Q; cin >> n >> m >> Q;
	vector<int> L[n + 1];
	map<int, bool> C[n + 1];
	for (int i = 1; i <= m; i++){
		int l, r; cin >> l >> r;
		C[r][l] = 1;
		L[r].push_back(l);
	}
	for (int i = 1; i <= n; i++){
		L[i].push_back(i);
	}
	for (auto &i : L) sort(i.begin(), i.end());
	for (int i = 1; i <= n; i++){
		int siz = L[i].size();
		if (siz == 1) continue;
		for (int j = 0; j < siz - 1; j++){
			for (int k = L[i][j]; k < L[i][j + 1]; k++){
				for (auto &[u, v] : C[k]){
					if (u <= L[i][j]) C[i][u] |= v;
				}
			}
		}
		for (auto &j : C[L[i][0] - 1]) C[i][j.first] |= j.second;
	}
	
	for (int q = 1; q <= Q; q++){
		int l, r; cin >> l >> r;
		cout << (C[r][l] ? "YES" : "NO") << 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...