139182025-01-09 10:52:41horvathabelTelefonközpontcpp17Accepted 100/100368ms4028 KiB
#include <bits/stdc++.h>
using namespace std;
int v[800001];
vector<int> t;
void build(int ind, int l, int r){
	if (l==r){
		 v[ind]=t[l];
		 return;
	}
	int m=(l+r)/2;
	build(ind*2, l, m);
	build(ind*2+1, m+1, r);
	v[ind]=max(v[ind*2], v[ind*2+1]);
}
int ask(int ind, int l, int r, int ql, int qr){
	if (ql>qr) return -1;
	if (l==ql && r==qr) return v[ind];
	int m=(l+r)/2;
	return max(ask(ind*2, l, m, ql, min(qr, m)),ask(ind*2+1, m+1, r, max(ql, m+1), qr));

}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
	int n,m,k;
	cin>>n>>m>>k;
	t.resize(n+2,0);
	for (int i=0; i<m;i++){
		int a,b;
		cin>>a>>b;
		t[a]++;
		t[b+1]--;
	}
	for (int i=1;i<=n;i++){
		t[i]=t[i-1]+t[i];
	}
	build(1, 1, n);
	for (int i=0; i<k;i++){
		int a,b;
		cin>>a>>b;
		cout<<ask(1,1,n,a,b)<<endl;
	}

}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms500 KiB
2Accepted1ms316 KiB
subtask220/20
3Accepted2ms316 KiB
4Accepted2ms316 KiB
5Accepted2ms316 KiB
6Accepted2ms316 KiB
7Accepted2ms316 KiB
8Accepted1ms316 KiB
9Accepted2ms548 KiB
subtask320/20
10Accepted2ms316 KiB
11Accepted2ms316 KiB
12Accepted2ms316 KiB
13Accepted2ms316 KiB
14Accepted2ms316 KiB
15Accepted1ms316 KiB
16Accepted2ms548 KiB
17Accepted9ms508 KiB
18Accepted9ms320 KiB
19Accepted9ms500 KiB
20Accepted9ms316 KiB
21Accepted9ms316 KiB
22Accepted8ms316 KiB
23Accepted9ms508 KiB
subtask460/60
24Accepted2ms316 KiB
25Accepted2ms316 KiB
26Accepted2ms316 KiB
27Accepted2ms316 KiB
28Accepted2ms316 KiB
29Accepted1ms316 KiB
30Accepted2ms548 KiB
31Accepted9ms508 KiB
32Accepted9ms320 KiB
33Accepted9ms500 KiB
34Accepted9ms316 KiB
35Accepted9ms316 KiB
36Accepted8ms316 KiB
37Accepted9ms508 KiB
38Accepted358ms3864 KiB
39Accepted368ms4028 KiB
40Accepted365ms3860 KiB
41Accepted354ms3860 KiB
42Accepted354ms3892 KiB
43Accepted358ms3864 KiB
44Accepted358ms3856 KiB