Submission #1176445

#TimeUsernameProblemLanguageResultExecution timeMemory
1176445orgiloogiiInfinite Race (EGOI24_infiniterace2)C++20
34 / 100
35 ms11332 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); 
	int n, q;
	cin >> n >> q;
	int ans = 0;
	vector <vector <int>> v(n + 1, vector <int>(0));
	for (int i = 0;i < q;i++) {
		int x;
		cin >> x;
		if (x < 0) {
			// if (v[-x].size() != 0) {
			// 	v[-x].pop_back();
			// }
		}
		else {
			v[x].push_back(i);
			// cout << v[x].size() << " ";
		}
	}
	// return 0;
	vector <pair <int, int>> times;
	for (int i = 0;i < n;i++) {
		// cout << v[i].size() << " ";
		// continue;
		for (int j = 0;j < v[i].size();j++) {
			if(j == v[i].size() - 1) break;
			// cout << v[i][j] << " ";
			times.push_back({v[i][j + 1], v[i][j]});
		}
		// cout << endl;
	}
	if (times.size() == 0) {
		cout << 0 << endl;
		return 0;
	}
	// cout << endl;
	sort(times.begin(), times.end());
	// for (int i = 0;i < times.size();i++) {
	// 	cout << times[i].first << " " << times[i].second << endl;
	// }
	// cout << ans << endl;
	int l = times[0].first;
	ans = 1;
	for (int i = 1;i < times.size();i++) {
		if (l <= times[i].second) {
			l = times[i].first;
			ans++;
		}
	}
	cout << ans;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...