254062026-02-19 20:37:59lorantbSzínes szobák (50 pont)cpp17Időlimit túllépés 24/50400ms5564 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);
	map<int,vector<int>> mep;
	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/01ms316 KiB
2Elfogadva0/0152ms3380 KiB
3Elfogadva1/13ms316 KiB
4Elfogadva1/13ms316 KiB
5Elfogadva1/13ms456 KiB
6Elfogadva1/13ms316 KiB
7Elfogadva1/13ms316 KiB
8Elfogadva1/13ms456 KiB
9Elfogadva1/13ms316 KiB
10Elfogadva1/18ms316 KiB
11Elfogadva1/13ms416 KiB
12Elfogadva1/17ms560 KiB
13Elfogadva1/161ms668 KiB
14Elfogadva1/123ms820 KiB
15Elfogadva1/127ms788 KiB
16Elfogadva1/190ms820 KiB
17Elfogadva1/1115ms924 KiB
18Elfogadva1/1111ms944 KiB
19Elfogadva1/193ms2884 KiB
20Elfogadva1/1149ms2960 KiB
21Elfogadva1/1112ms2868 KiB
22Elfogadva1/1120ms3064 KiB
23Elfogadva1/1140ms3068 KiB
24Elfogadva1/1150ms2908 KiB
25Elfogadva1/1150ms2976 KiB
26Elfogadva1/1148ms3036 KiB
27Időlimit túllépés0/3388ms5552 KiB
28Időlimit túllépés0/3382ms5560 KiB
29Időlimit túllépés0/3398ms5544 KiB
30Időlimit túllépés0/3400ms5496 KiB
31Időlimit túllépés0/3374ms5564 KiB
32Időlimit túllépés0/3386ms5556 KiB
33Időlimit túllépés0/4400ms2868 KiB
34Időlimit túllépés0/4400ms2868 KiB