23852023-01-12 09:49:01rennRendezéscpp11Accepted 40/4037ms7232 KiB
//Rendezés, megoldás rendezéssel
#include <bits/stdc++.h>
#define maxN 100001

using namespace std;
int N,M,K=0;
int S[maxN];
int AB[maxN]={0};
vector<pair<int,int>> R;

int main (){
   ios_base::sync_with_stdio(false); cin.tie(NULL);
   cin>>N>>M;
   int a,b;
   for(int i=1;i<=N;i++)
      cin>>S[i];
   for(int i=1;i<=M;i++){
      cin>>a>>b;
      if(AB[a]<b) AB[a]=b;
   }
   a=1;b=1;
   for(int x=1;x<=N;x++){
      if(x>b){
         R.push_back({a,b});
         a=x;AB[a]==0 ? b=a:b=AB[a];
      }else{
         if(b<AB[x]) b=AB[x];
      }
   }
   R.push_back({a,b});
   for(int i=0;i<R.size();i++){
      a=R[i].first; b=R[i].second;
      if(a==b) continue;
      sort(S+a, S+b+1);
   }

   for(int i=1;i<=N;i++)
      if(i==S[i]) K++;

   cout<<K<<endl;
  return 0;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/03ms1900 KiB
2Accepted0/06ms2284 KiB
3Accepted2/22ms2420 KiB
4Accepted2/22ms2400 KiB
5Accepted2/22ms2504 KiB
6Accepted2/22ms2704 KiB
7Accepted2/22ms3072 KiB
8Accepted2/22ms3272 KiB
9Accepted2/22ms3132 KiB
10Accepted2/22ms3212 KiB
11Accepted2/235ms6976 KiB
12Accepted2/234ms7232 KiB
13Accepted2/234ms7180 KiB
14Accepted1/134ms7072 KiB
15Accepted2/234ms7084 KiB
16Accepted2/235ms5292 KiB
17Accepted2/237ms5284 KiB
18Accepted2/237ms5256 KiB
19Accepted2/235ms5380 KiB
20Accepted1/135ms5460 KiB
21Accepted2/235ms5456 KiB
22Accepted2/235ms5464 KiB
23Accepted2/235ms5460 KiB