Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- using namespace std;
- int A[100050] ;
- int L[50050] ;
- int R[50050] ;
- int sw ;
- void marge ( int low , int mid , int high )
- {
- int n1 = mid - low + 1 , n2 = high - mid ;
- int i , j , k ;
- for ( i = 0 ; i < n1 ; i++ ) L[i] = A[low + i ] ;
- for ( i = 0 ; i < n2 ; i++ ) R[i] = A[mid + i + 1 ] ;
- for ( k = low , i = j = 0 ; k <= high ; k++ )
- if ( j >= n2 || ( i < n1 && L[i] <= R[j] ) ) A[k] = L[i++] ;
- else
- {
- if ( i < n1 ){ sw += ( n1 - i ) ; }
- A[k] = R[j++];
- }
- }
- void divide ( int low , int high )
- {
- if (low < high )
- {
- int mid = ( low + high ) / 2 ;
- divide ( low , mid ) ;
- divide ( mid + 1 , high ) ;
- marge ( low , mid , high ) ;
- }
- }
- int main()
- {
- int i , n ;
- while ( cin >> n && n )
- {
- sw = 0 ;
- for ( i = 0 ; i < n ; i++ ) scanf ( "%d" , &A[i] ) ;
- sw = 0 ;
- divide ( 0 , n - 1 ) ;
- if ( sw % 2 ) puts ( "Marcelo" ) ;
- else puts ("Carlos") ;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement