Advertisement
SuitNdtie

Trouble sort

Apr 30th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<algorithm>
  3. #include<vector>
  4. using namespace std;
  5. int main()
  6. {
  7.     int T;
  8.     scanf("%d",&T);
  9.     for(int t = 1 ; t <= T ; t ++){
  10.         int n;
  11.         scanf("%d",&n);
  12.         vector<int> A;
  13.         vector<int> B;
  14.         for(int i = 1 ; i <= n ; i ++){
  15.             int x;
  16.             scanf("%d",&x);
  17.             if(i % 2 == 1){
  18.                 A.push_back(x);
  19.             }else{
  20.                 B.push_back(x);
  21.             }
  22.         }
  23.         sort(A.begin(),A.end());
  24.         sort(B.begin(),B.end());
  25.         int ans = n;
  26.         int idx = 0;
  27.         for(int i = 0 ; i < A.size() ; i ++){
  28.             int front = -1;
  29.             if(i-1>=0)front = B[i-1];
  30.             int back = 1e9+1;
  31.             if(i<B.size()){
  32.                 back = B[i];
  33.             }
  34.             if(!(front <= A[i] && A[i] <= back)){
  35.                 if(idx < ans)ans = idx;
  36.                 break;
  37.             }
  38.             idx+=2;
  39.         }
  40.         idx = 1;
  41.         for(int i = 0 ; i < B.size() ; i++){
  42.             int front = -1;
  43.             front = A[i];
  44.             int back = 1e9+1;
  45.             if(i+1 < A.size())back = A[i+1];
  46.             if(!(front <= B[i] && B[i] <= back)){
  47.                 if(idx < ans)ans = idx;
  48.                 break;
  49.             }
  50.             idx+=2;
  51.         }
  52.         if(ans == n){
  53.             printf("Case #%d: OK\n",t);
  54.         }else{
  55.             printf("Case #%d: %d\n",t,ans);
  56.         }
  57.     }
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement