229712026-01-16 10:02:12AblablablaRendezéscpp17Accepted 40/40116ms2224 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

int main()
{
    int n, m;
    cin >> n >> m;

    vector<int> alap(n);
    for(int &x : alap){
        cin >> x;
    }

    vector<pii> lepes(m);
    for(auto &x : lepes){
        cin >> x.first >> x.second;
        x.first--; x.second--;
    }

    sort(lepes.begin(), lepes.end());

    int elso = lepes[0].first;
    int elozo = lepes[0].second;
    vector<pii> rendez;

    for(auto x : lepes){
        if(x.first <= elozo){
            elozo = max(elozo, x.second);
        } else{
            rendez.push_back({elso, elozo});
            elso = x.first;
            elozo = x.second;
        }
    }

    rendez.push_back({elso, elozo});

    for(auto x : rendez){
        sort(alap.begin() + x.first, alap.begin() + x.second + 1);
    }

    int ans = 0;
    for(int i = 0; i < n; i++){
        if(i + 1 == alap[i]){
            ans++;
        }
    }

    cout << ans << "\n";
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms508 KiB
2Accepted0/014ms564 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/22ms316 KiB
8Accepted2/22ms316 KiB
9Accepted2/22ms316 KiB
10Accepted2/22ms316 KiB
11Accepted2/2111ms2224 KiB
12Accepted2/2111ms2224 KiB
13Accepted2/2111ms2224 KiB
14Accepted1/1111ms2224 KiB
15Accepted2/2109ms2208 KiB
16Accepted2/2112ms1552 KiB
17Accepted2/2116ms1568 KiB
18Accepted2/2115ms1572 KiB
19Accepted2/2114ms1584 KiB
20Accepted1/1114ms1572 KiB
21Accepted2/2112ms1568 KiB
22Accepted2/2114ms1568 KiB
23Accepted2/2112ms1576 KiB