23852023-01-12 09:49:01rennRendezéscpp11Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1900 KiB
2Elfogadva0/06ms2284 KiB
3Elfogadva2/22ms2420 KiB
4Elfogadva2/22ms2400 KiB
5Elfogadva2/22ms2504 KiB
6Elfogadva2/22ms2704 KiB
7Elfogadva2/22ms3072 KiB
8Elfogadva2/22ms3272 KiB
9Elfogadva2/22ms3132 KiB
10Elfogadva2/22ms3212 KiB
11Elfogadva2/235ms6976 KiB
12Elfogadva2/234ms7232 KiB
13Elfogadva2/234ms7180 KiB
14Elfogadva1/134ms7072 KiB
15Elfogadva2/234ms7084 KiB
16Elfogadva2/235ms5292 KiB
17Elfogadva2/237ms5284 KiB
18Elfogadva2/237ms5256 KiB
19Elfogadva2/235ms5380 KiB
20Elfogadva1/135ms5460 KiB
21Elfogadva2/235ms5456 KiB
22Elfogadva2/235ms5464 KiB
23Elfogadva2/235ms5460 KiB