139172025-01-09 10:51:57horvathabelTelefonközpontcpp17Time limit exceeded 40/100519ms7988 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() {
	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
1Accepted1ms508 KiB
2Accepted1ms316 KiB
subtask220/20
3Accepted2ms416 KiB
4Accepted2ms508 KiB
5Accepted2ms316 KiB
6Accepted2ms316 KiB
7Accepted2ms420 KiB
8Accepted2ms384 KiB
9Accepted2ms316 KiB
subtask320/20
10Accepted2ms416 KiB
11Accepted2ms508 KiB
12Accepted2ms316 KiB
13Accepted2ms316 KiB
14Accepted2ms420 KiB
15Accepted2ms384 KiB
16Accepted2ms316 KiB
17Accepted13ms540 KiB
18Accepted13ms316 KiB
19Accepted13ms316 KiB
20Accepted13ms540 KiB
21Accepted13ms316 KiB
22Accepted13ms316 KiB
23Accepted13ms508 KiB
subtask40/60
24Accepted2ms416 KiB
25Accepted2ms508 KiB
26Accepted2ms316 KiB
27Accepted2ms316 KiB
28Accepted2ms420 KiB
29Accepted2ms384 KiB
30Accepted2ms316 KiB
31Accepted13ms540 KiB
32Accepted13ms316 KiB
33Accepted13ms316 KiB
34Accepted13ms540 KiB
35Accepted13ms316 KiB
36Accepted13ms316 KiB
37Accepted13ms508 KiB
38Time limit exceeded518ms7912 KiB
39Time limit exceeded514ms7796 KiB
40Time limit exceeded519ms7788 KiB
41Time limit exceeded519ms7984 KiB
42Time limit exceeded510ms7988 KiB
43Time limit exceeded509ms7988 KiB
44Time limit exceeded517ms7816 KiB