254072026-02-19 20:40:50lorantbSzínes szobák (50 pont)cpp17Időlimit túllépés 24/50400ms4940 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n,k,m; cin >> n >> k >> m;
	int ans = 0;
	vector<int> rooms(n+1,1);
	vector<int> r(n+1);
	vector<vector<int>> mep(k+1);
	for(int i = 1; i <= n; i++) {
		int a; cin >> a;
		mep[a].push_back(i);
	}
	for(int i = 0; i < m; i++) {
		int a,b; cin >> a >> b;
		for(int j : mep[a]) {
			if(j == 1 && b == -1) {
				ans+=rooms[j];
				rooms[j] = 0;
			}
			else if(j == n && b == 1) {
				ans+= rooms[j];
				rooms[j] = 0;
			}
			else {
				if(b == -1) {
					r[j-1] = rooms[j];
					rooms[j] = 0;
				}
				else {
					r[j+1] = rooms[j];
					rooms[j] = 0;
				}
			}
		}
		for(int j : mep[a]) {
			if(j == 1 && b == -1) continue;
			else if(j == n && b == 1) continue;
			else if(b == 1) rooms[j+1] += r[j+1];
			else rooms[j-1] += r[j-1];
		}
	}
	cout << ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base24/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/096ms4400 KiB
3Elfogadva1/13ms316 KiB
4Elfogadva1/13ms316 KiB
5Elfogadva1/13ms508 KiB
6Elfogadva1/13ms316 KiB
7Elfogadva1/13ms316 KiB
8Elfogadva1/13ms560 KiB
9Elfogadva1/13ms508 KiB
10Elfogadva1/18ms508 KiB
11Elfogadva1/13ms316 KiB
12Elfogadva1/18ms316 KiB
13Elfogadva1/176ms820 KiB
14Elfogadva1/127ms580 KiB
15Elfogadva1/130ms820 KiB
16Elfogadva1/1116ms872 KiB
17Elfogadva1/1148ms820 KiB
18Elfogadva1/1145ms1064 KiB
19Elfogadva1/157ms2192 KiB
20Elfogadva1/192ms2356 KiB
21Elfogadva1/168ms2208 KiB
22Elfogadva1/175ms2240 KiB
23Elfogadva1/186ms2356 KiB
24Elfogadva1/192ms2296 KiB
25Elfogadva1/192ms2356 KiB
26Elfogadva1/193ms2360 KiB
27Időlimit túllépés0/3400ms4860 KiB
28Időlimit túllépés0/3388ms4784 KiB
29Időlimit túllépés0/3400ms4940 KiB
30Időlimit túllépés0/3400ms4752 KiB
31Időlimit túllépés0/3382ms4784 KiB
32Időlimit túllépés0/3386ms4784 KiB
33Időlimit túllépés0/4400ms2612 KiB
34Időlimit túllépés0/4400ms2612 KiB