254072026-02-19 20:40:50lorantbSzínes szobák (50 pont)cpp17Time limit exceeded 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;
}
SubtaskSumTestVerdictTimeMemory
base24/50
1Accepted0/01ms508 KiB
2Accepted0/096ms4400 KiB
3Accepted1/13ms316 KiB
4Accepted1/13ms316 KiB
5Accepted1/13ms508 KiB
6Accepted1/13ms316 KiB
7Accepted1/13ms316 KiB
8Accepted1/13ms560 KiB
9Accepted1/13ms508 KiB
10Accepted1/18ms508 KiB
11Accepted1/13ms316 KiB
12Accepted1/18ms316 KiB
13Accepted1/176ms820 KiB
14Accepted1/127ms580 KiB
15Accepted1/130ms820 KiB
16Accepted1/1116ms872 KiB
17Accepted1/1148ms820 KiB
18Accepted1/1145ms1064 KiB
19Accepted1/157ms2192 KiB
20Accepted1/192ms2356 KiB
21Accepted1/168ms2208 KiB
22Accepted1/175ms2240 KiB
23Accepted1/186ms2356 KiB
24Accepted1/192ms2296 KiB
25Accepted1/192ms2356 KiB
26Accepted1/193ms2360 KiB
27Time limit exceeded0/3400ms4860 KiB
28Time limit exceeded0/3388ms4784 KiB
29Time limit exceeded0/3400ms4940 KiB
30Time limit exceeded0/3400ms4752 KiB
31Time limit exceeded0/3382ms4784 KiB
32Time limit exceeded0/3386ms4784 KiB
33Time limit exceeded0/4400ms2612 KiB
34Time limit exceeded0/4400ms2612 KiB