#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