23782023-01-12 08:31:02sztomiRendezéscpp11Elfogadva 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";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1832 KiB
2Elfogadva0/08ms2632 KiB
3Elfogadva2/22ms2152 KiB
4Elfogadva2/22ms2232 KiB
5Elfogadva2/22ms2512 KiB
6Elfogadva2/22ms2724 KiB
7Elfogadva2/22ms3084 KiB
8Elfogadva2/22ms2920 KiB
9Elfogadva2/23ms3176 KiB
10Elfogadva2/22ms3380 KiB
11Elfogadva2/245ms7160 KiB
12Elfogadva2/245ms7284 KiB
13Elfogadva2/246ms7468 KiB
14Elfogadva1/145ms7492 KiB
15Elfogadva2/246ms7488 KiB
16Elfogadva2/246ms7192 KiB
17Elfogadva2/250ms7448 KiB
18Elfogadva2/250ms7652 KiB
19Elfogadva2/248ms7856 KiB
20Elfogadva1/148ms7808 KiB
21Elfogadva2/246ms7804 KiB
22Elfogadva2/246ms7804 KiB
23Elfogadva2/248ms7848 KiB