139172025-01-09 10:51:57horvathabelTelefonközpontcpp17Időlimit túllépés 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;
	}

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms508 KiB
2Elfogadva1ms316 KiB
subtask220/20
3Elfogadva2ms416 KiB
4Elfogadva2ms508 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms420 KiB
8Elfogadva2ms384 KiB
9Elfogadva2ms316 KiB
subtask320/20
10Elfogadva2ms416 KiB
11Elfogadva2ms508 KiB
12Elfogadva2ms316 KiB
13Elfogadva2ms316 KiB
14Elfogadva2ms420 KiB
15Elfogadva2ms384 KiB
16Elfogadva2ms316 KiB
17Elfogadva13ms540 KiB
18Elfogadva13ms316 KiB
19Elfogadva13ms316 KiB
20Elfogadva13ms540 KiB
21Elfogadva13ms316 KiB
22Elfogadva13ms316 KiB
23Elfogadva13ms508 KiB
subtask40/60
24Elfogadva2ms416 KiB
25Elfogadva2ms508 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms420 KiB
29Elfogadva2ms384 KiB
30Elfogadva2ms316 KiB
31Elfogadva13ms540 KiB
32Elfogadva13ms316 KiB
33Elfogadva13ms316 KiB
34Elfogadva13ms540 KiB
35Elfogadva13ms316 KiB
36Elfogadva13ms316 KiB
37Elfogadva13ms508 KiB
38Időlimit túllépés518ms7912 KiB
39Időlimit túllépés514ms7796 KiB
40Időlimit túllépés519ms7788 KiB
41Időlimit túllépés519ms7984 KiB
42Időlimit túllépés510ms7988 KiB
43Időlimit túllépés509ms7988 KiB
44Időlimit túllépés517ms7816 KiB