67132023-12-17 18:23:49111Rendezéscpp17Elfogadva 40/4054ms8072 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

#define pii pair<int, int>

void join(vector<pii>& r) {
	if (r.empty()) {
		return;
	}
	int j = 0;
	for (int i = 1; i < r.size(); i++) {
		if (r[j].second >= r[i].first) {
			r[j].second = max(r[j].second, r[i].second);
		}
		else {
			j++;
			r[j] = r[i];
		}
	}
	r.resize(j + 1);
}

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
#ifdef CB
	freopen("be2.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
#endif
	int N, M;
	cin >> N >> M;
	vector<int> v(N + 1);
	for (int i = 1; i <= N; i++) {
		cin >> v[i];
	}
	vector<pii> w(M);
	for (int i = 0; i < M; i++) {
		cin >> w[i].first >> w[i].second;
	}
	sort(w.begin(), w.end());
	join(w);
	for (auto [a, b] : w) {
		sort(v.begin() + a, v.begin() + b + 1);
	}
	int ans = 0;
	for (int i = 1; i <= N; i++) {
		ans += v[i] == i;
	}
	cout << ans << '\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1824 KiB
2Elfogadva0/09ms2748 KiB
3Elfogadva2/23ms2296 KiB
4Elfogadva2/23ms2320 KiB
5Elfogadva2/23ms2440 KiB
6Elfogadva2/23ms2528 KiB
7Elfogadva2/23ms2680 KiB
8Elfogadva2/23ms2652 KiB
9Elfogadva2/23ms2664 KiB
10Elfogadva2/23ms2668 KiB
11Elfogadva2/248ms7352 KiB
12Elfogadva2/248ms7304 KiB
13Elfogadva2/248ms7308 KiB
14Elfogadva1/148ms7564 KiB
15Elfogadva2/248ms7776 KiB
16Elfogadva2/250ms7808 KiB
17Elfogadva2/254ms7812 KiB
18Elfogadva2/252ms7808 KiB
19Elfogadva2/252ms7808 KiB
20Elfogadva1/152ms7812 KiB
21Elfogadva2/250ms8072 KiB
22Elfogadva2/250ms8012 KiB
23Elfogadva2/252ms8016 KiB