답안 #966339

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
966339 2024-04-19T17:48:52 Z Acanikolic Curtains (NOI23_curtains) C++14
0 / 100
7 ms 27096 KB
#include <bits/stdc++.h>
			 				 
#define pb push_back 
			
#define F first
		 
#define S second
			 
using namespace std;
			 
const int N = 500000 + 10;
			 
const int mod = 998244353;

const int inf = 1e9;

int res[N],mx[N];
vector<int>segs[N];
vector<pair<int,int>>kveri[N];

int st[N * 4],lazy[N * 4];
bool lzy[N * 4];

void push(int node,int tl,int tr) {
	if(!lzy[node]) return;
	st[node] = max(st[node],lazy[node]);
	if(tl != tr) {
		lazy[node * 2] = max(lazy[node * 2],lazy[node]);
		lazy[node * 2 + 1] = max(lazy[node * 2 + 1],lazy[node]);
		lzy[node * 2] = true;
		lzy[node * 2 + 1] = true;
	}
	lazy[node] = 0;
	lzy[node] = false;
}

void Set(int node,int tl,int tr,int l,int r,int x) {
	if(tl > r || tr < l) return;
	if(tl >= l && tr <= r) {
		lazy[node] = max(lazy[node],x);
		lzy[node] = true;
		push(node,tl,tr);
		return;
	}
	push(node,tl,tr);
	int mid = (tl + tr) / 2;
	Set(node * 2,tl,mid,l,r,x);
	Set(node * 2 + 1,mid + 1,tr,l,r,x);
	st[node] = min(st[node * 2],st[node * 2 + 1]);
}

int get(int node,int tl,int tr,int l,int r) {
	if(tl > r || tr < l) return inf;
	push(node,tl,tr);
	if(tl >= l && tr <= r) return st[node];
	int mid = (tl + tr) / 2;
	return min(get(node * 2,tl,mid,l,r),get(node * 2 + 1,mid + 1,tr,l,r));
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

	int n,m,q;
	cin >> n >> m >> q;
	for(int i = 1; i <= m; i++) {
		int l,r;
		cin >> l >> r;
		segs[r].pb(l);
	}
	for(int i = 1; i <= q; i++) {
		int l,r;
		cin >> l >> r;
		kveri[r].pb({l,i});
	}
	for(int i = 1; i <= n; i++) {
		for(auto X : segs[i]) Set(1,1,n,X,i,X);
		for(auto X : kveri[i]) if(get(1,1,n,X.F,i) >= X.F) res[X.S] = 1;
	}
	for(int i = 1; i <= q; i++) cout << (res[i] == 1 ? "YES\n" : "NO\n");
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 26972 KB Output is correct
2 Correct 6 ms 27096 KB Output is correct
3 Incorrect 6 ms 26972 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 26972 KB Output is correct
2 Correct 6 ms 27096 KB Output is correct
3 Incorrect 6 ms 26972 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 26972 KB Output is correct
2 Correct 6 ms 27096 KB Output is correct
3 Incorrect 6 ms 26972 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 26972 KB Output is correct
2 Correct 5 ms 24924 KB Output is correct
3 Incorrect 7 ms 27092 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 26972 KB Output is correct
2 Correct 6 ms 27096 KB Output is correct
3 Incorrect 6 ms 26972 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 26972 KB Output is correct
2 Correct 6 ms 27096 KB Output is correct
3 Incorrect 6 ms 26972 KB Output isn't correct
4 Halted 0 ms 0 KB -