Advertisement
SuitNdtie

The Exam Sort

May 1st, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<vector>
  3. using namespace std;
  4. int main()
  5. {
  6.     int n;
  7.     scanf("%d",&n);
  8.     vector<int> vec(n+1);
  9.     for(int i = 1 ; i <= n ; i ++)
  10.     {
  11.         scanf("%d",&vec[i]);
  12.     }
  13.     int order[n+1];
  14.     int f = 1;
  15.     int b = n;
  16.     for(int i = 1 ; i <= n ; i ++){
  17.         if(i % 2 == 1){
  18.             order[i] = f++;
  19.         }else{
  20.             order[i] = b--;
  21.         }
  22.     //  printf("%d ",order[i]);
  23.     }
  24.     int cnt = 0;
  25.     for(int i = 1 ; i <= n ; i ++){
  26.         bool skip = false;
  27.         if(vec[order[i]] == order[i]){ //skip
  28.             cnt ++;
  29.             skip = true;
  30.         }else{
  31.             int j;
  32.             for(j = 1 ; j <= n ; j ++){
  33.                 if(vec[j] == order[i]){
  34.                     break;
  35.                 }
  36.             }
  37.             vec.erase(vec.begin()+j);
  38.             vec.insert(vec.begin()+order[i],order[i]);
  39.         }
  40.     /*  printf("I (%d) %s : ",i,(skip ? "skip" : "NotS"));
  41.         for(int j = 1 ; j <= n ; j ++){
  42.             printf("%d ",vec[j]);
  43.         }
  44.         printf("\n");*/
  45.     }
  46.     printf("%d",cnt);
  47.     return 0;
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement