67112023-12-17 18:22:34111Rendezéscpp17Hibás válasz 7/4050ms31472 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 = 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("be1.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
base7/40
1Elfogadva0/03ms1832 KiB
2Hibás válasz0/09ms2968 KiB
3Elfogadva2/23ms2544 KiB
4Hibás válasz0/23ms2720 KiB
5Hibás válasz0/23ms2784 KiB
6Hibás válasz0/23ms2788 KiB
7Hibás válasz0/23ms3152 KiB
8Hibás válasz0/23ms3264 KiB
9Hibás válasz0/23ms3520 KiB
10Hibás válasz0/23ms3504 KiB
11Hibás válasz0/250ms9988 KiB
12Elfogadva2/248ms11808 KiB
13Elfogadva2/250ms13648 KiB
14Elfogadva1/148ms15376 KiB
15Hibás válasz0/248ms17244 KiB
16Hibás válasz0/248ms18984 KiB
17Hibás válasz0/248ms20812 KiB
18Hibás válasz0/248ms22732 KiB
19Hibás válasz0/250ms24452 KiB
20Hibás válasz0/148ms26144 KiB
21Hibás válasz0/248ms27876 KiB
22Hibás válasz0/248ms29596 KiB
23Hibás válasz0/248ms31472 KiB