254062026-02-19 20:37:59lorantbSzínes szobák (50 pont)cpp17Time limit exceeded 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;
}
SubtaskSumTestVerdictTimeMemory
base24/50
1Accepted0/01ms316 KiB
2Accepted0/0152ms3380 KiB
3Accepted1/13ms316 KiB
4Accepted1/13ms316 KiB
5Accepted1/13ms456 KiB
6Accepted1/13ms316 KiB
7Accepted1/13ms316 KiB
8Accepted1/13ms456 KiB
9Accepted1/13ms316 KiB
10Accepted1/18ms316 KiB
11Accepted1/13ms416 KiB
12Accepted1/17ms560 KiB
13Accepted1/161ms668 KiB
14Accepted1/123ms820 KiB
15Accepted1/127ms788 KiB
16Accepted1/190ms820 KiB
17Accepted1/1115ms924 KiB
18Accepted1/1111ms944 KiB
19Accepted1/193ms2884 KiB
20Accepted1/1149ms2960 KiB
21Accepted1/1112ms2868 KiB
22Accepted1/1120ms3064 KiB
23Accepted1/1140ms3068 KiB
24Accepted1/1150ms2908 KiB
25Accepted1/1150ms2976 KiB
26Accepted1/1148ms3036 KiB
27Time limit exceeded0/3388ms5552 KiB
28Time limit exceeded0/3382ms5560 KiB
29Time limit exceeded0/3398ms5544 KiB
30Time limit exceeded0/3400ms5496 KiB
31Time limit exceeded0/3374ms5564 KiB
32Time limit exceeded0/3386ms5556 KiB
33Time limit exceeded0/4400ms2868 KiB
34Time limit exceeded0/4400ms2868 KiB