23782023-01-12 08:31:02sztomiRendezéscpp11Accepted 40/4050ms7856 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m;
    cin >> n >> m;
    vector<int> szamok(n);
    for(int i = 0; i < n; i++){
        cin >> szamok[i];
    }
    vector<pii> intervallumok(m);
    for(int i = 0; i < m; i++){
        cin >> intervallumok[i].first >> intervallumok[i].second;
    }
    sort(intervallumok.begin(), intervallumok.end());
    intervallumok.push_back({200000, 200000});

    vector<pii> ki_int;
    pii akt = {-1, -1};
    for(int i = 0; i < m+1; i++){
        if(akt.second < intervallumok[i].first){
            ki_int.push_back(akt);
            akt.first = intervallumok[i].first;
            akt.second = intervallumok[i].second;
        }
        else{
            akt.second = max(akt.second, intervallumok[i].second);
        }
    }

    for(int i = 1; i < ki_int.size(); i++){
        //cout << ki_int[i].first << " " << ki_int[i].second << "\n";
        sort(szamok.begin()+ki_int[i].first-1, szamok.begin()+ki_int[i].second);
    }

    int db = 0;
    for(int i = 0; i < n; i++){
        //cout << szamok[i] << " ";
        db += szamok[i] == i+1;
    }
    //cout << "\n";
    cout << db << "\n";
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/03ms1832 KiB
2Accepted0/08ms2632 KiB
3Accepted2/22ms2152 KiB
4Accepted2/22ms2232 KiB
5Accepted2/22ms2512 KiB
6Accepted2/22ms2724 KiB
7Accepted2/22ms3084 KiB
8Accepted2/22ms2920 KiB
9Accepted2/23ms3176 KiB
10Accepted2/22ms3380 KiB
11Accepted2/245ms7160 KiB
12Accepted2/245ms7284 KiB
13Accepted2/246ms7468 KiB
14Accepted1/145ms7492 KiB
15Accepted2/246ms7488 KiB
16Accepted2/246ms7192 KiB
17Accepted2/250ms7448 KiB
18Accepted2/250ms7652 KiB
19Accepted2/248ms7856 KiB
20Accepted1/148ms7808 KiB
21Accepted2/246ms7804 KiB
22Accepted2/246ms7804 KiB
23Accepted2/248ms7848 KiB