Files
problemas-para-competicao-p…/bolhas/src/ac.cpp

45 lines
1.0 KiB
C++

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll countInversions(vector<int> &seq, int left, int right) {
if (left >= right) {
return 0;
}
int middle = (left + right)/2;
ll inversions = 0;
inversions += countInversions(seq, left, middle);
inversions += countInversions(seq, middle + 1, right);
vector<int> l(seq.begin() + left, seq.begin() + middle + 1);
vector<int> r(seq.begin() + middle + 1, seq.begin() + right + 1);
int leftSize = l.size(), rightSize = r.size();
for (int i = 0, j = 0; i < leftSize || j < rightSize;) {
if (i >= leftSize || (j < rightSize && r[j] < l[i])) {
seq[left++] = r[j++];
inversions += ((ll)leftSize - (ll)i);
} else {
seq[left++] = l[i++];
}
}
return inversions;
}
int main()
{
int N; cin >> N;
vector<int> seq(N);
for (int i = 0; i < N; i++) cin >> seq[i];
if (countInversions(seq, 0, N - 1) & 1) {
cout << "Marcelo" << endl;
} else {
cout << "Carlos" << endl;
}
return 0;
}