25082023-01-15 11:29:36Zoli9Videójátékcpp17Hibás válasz 10/100185ms7240 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int t, n;
	cin>>t>>n;
	vector<pair<int, int>> fsz(n+1);
	for(int i=1; i<n+1; i++){
		cin>>fsz[i].first;
		cin>>fsz[i].second;
	}
	int m;
	cin>>m;
	vector<pair<int, int>> haha(m+1);
	for(int i=1; i<m+1; i++){
		cin>>haha[i].first;
		cin>>haha[i].second;
	}
	int megoldas=0;
	int hszaml=1;
	for(int i=1; i<n+1; i++) {
		//itt megjön a főszereplő az i. szünetre

		/*
		amíg hszaml szünet intervallum az túl kicsi, addig fellépegetünk

		...utána most már a közös szünetes dolgokat vizsgáljuk

		...és utána ha elment a főszereplő, vagy már túl messze van a hszaml szünet, akkor kilépünk
		*/
		while(hszaml<=m && haha[hszaml].second<fsz[i].first){
			hszaml++;
		}
		if(hszaml>m) {
			break;
		}

		int fszido=fsz[i].first;
		while(1) {
			if(haha[hszaml].first>fsz[i].second){
				break;
			}
			if(fszido+t+1<haha[hszaml].first){
				break;
			}
			int mini=min(haha[hszaml].second, fsz[i].second);
			int maxi=max(haha[hszaml].first, fszido);
			megoldas+=mini-maxi+1;
			hszaml++;
			fszido=mini+1;
			if(hszaml>m) {
				break;
			}
		}
		if(hszaml>m) {
			break;
		}
	}
	cout<<megoldas;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1816 KiB
2Elfogadva2ms2048 KiB
subtask210/10
3Elfogadva2ms2208 KiB
4Elfogadva2ms2452 KiB
5Elfogadva2ms2652 KiB
6Elfogadva2ms2904 KiB
7Elfogadva2ms3144 KiB
8Elfogadva2ms3224 KiB
9Elfogadva2ms3136 KiB
10Elfogadva2ms3140 KiB
11Elfogadva2ms3136 KiB
subtask30/20
12Hibás válasz2ms3412 KiB
13Elfogadva2ms3516 KiB
14Hibás válasz2ms3508 KiB
15Hibás válasz3ms3636 KiB
16Hibás válasz2ms3572 KiB
17Hibás válasz3ms3532 KiB
18Hibás válasz3ms3540 KiB
19Hibás válasz4ms3672 KiB
20Hibás válasz3ms3748 KiB
21Hibás válasz3ms3872 KiB
22Hibás válasz2ms3996 KiB
subtask40/30
23Hibás válasz14ms4500 KiB
24Hibás válasz48ms5052 KiB
25Hibás válasz120ms6788 KiB
26Hibás válasz135ms6980 KiB
27Hibás válasz135ms6980 KiB
28Hibás válasz52ms5424 KiB
29Hibás válasz10ms4368 KiB
30Hibás válasz9ms4364 KiB
31Elfogadva6ms4472 KiB
subtask50/40
32Hibás válasz16ms4540 KiB
33Hibás válasz59ms5220 KiB
34Hibás válasz112ms6196 KiB
35Hibás válasz159ms6868 KiB
36Hibás válasz181ms7240 KiB
37Hibás válasz185ms7240 KiB
38Hibás válasz93ms6200 KiB
39Hibás válasz112ms6708 KiB
40Elfogadva28ms4772 KiB
41Hibás válasz43ms5080 KiB