#include<cstdio>
using namespace std;
int lista[100000], res = 0;
void merge(const int& ini, const int& med, const int& fin) {
int i = ini;
int j = med + 1;
int k = 0;
int vector[fin - ini + 1];
while (i <= med && j <= fin) {
if(lista[i] <= lista[j])
vector[k++] = lista[i++];
else
vector[k++] = lista[j++], res += med - i + 1;
}
while (i <= med) vector[k++] = lista[i++];
while (j <= fin) vector[k++] = lista[j++];
for (i = 0; i < k; i++) lista[ini + i] = vector[i];
}
void merge_sort(const int& ini, const int& fin) {
if (ini < fin) {
int med = (ini + fin) / 2;
merge_sort(ini, med);
merge_sort(med + 1, fin);
merge(ini, med, fin);
}
}
int main() {
int n;
while(scanf("%d", &n) && n) {
res = 0;
for (int i = 0; i < n; i++)
scanf("%d", lista + i);
merge_sort(0, n - 1);
if(res % 2 == 0)
puts("Carlos");
else
puts("Marcelo");
}
return 0;
}
jueves, 20 de octubre de 2011
11495 - Bubbles and Buckets - UVA
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario