Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int A[100050] ;
  7. int L[50050] ;
  8. int R[50050] ;
  9. int sw ;
  10.  
  11. void marge ( int low , int mid , int high )
  12. {
  13.     int n1 = mid - low + 1 , n2 = high - mid ;
  14.     int i , j , k ;
  15.  
  16.     for ( i = 0 ; i < n1 ; i++ ) L[i] = A[low + i ] ;
  17.     for ( i = 0 ; i < n2 ; i++ ) R[i] = A[mid + i + 1 ] ;
  18.  
  19.     for ( k = low , i = j = 0 ;  k <= high ; k++ )
  20.         if ( j >= n2 || ( i < n1 && L[i] <= R[j] ) ) A[k] = L[i++] ;
  21.         else
  22.         {
  23.             if ( i < n1 ){ sw += ( n1 - i ) ; }
  24.             A[k] = R[j++];
  25.         }
  26. }
  27.  
  28.  
  29. void divide ( int low , int high )
  30. {
  31.    
  32.     if (low < high )
  33.     {
  34.         int mid = ( low + high ) / 2 ;
  35.             divide ( low , mid ) ;
  36.             divide ( mid + 1 , high ) ;
  37.             marge ( low , mid , high ) ;
  38.     }
  39. }
  40.  
  41.  
  42.  
  43. int main()
  44. {
  45.      int i , n ;
  46.      
  47.      while ( cin >> n && n )
  48.      {
  49.          sw = 0 ;
  50.          for ( i = 0 ; i < n ; i++ ) scanf ( "%d" , &A[i] ) ;
  51.          sw = 0 ;
  52.          divide ( 0 , n - 1 ) ;
  53.  
  54.         if ( sw % 2 ) puts ( "Marcelo" ) ;
  55.         else puts ("Carlos") ;
  56.      }
  57.  
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement