Jeremiah_

Bolhas e Baldes - Neps

May 17th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define forn(l, r) for(int i = l; i < (r); ++i)
  4. #define forj(l, r) for(int j = l; j < (r); ++j)
  5. #define TAM 1000100
  6. #define SYNC ios::sync_with_stdio(0);
  7. #define $ << ' ' <<
  8. #define F first
  9. #define S second
  10. #define endl '\n'
  11.  
  12.  
  13. using namespace std;
  14.  
  15. using ll = long long int;
  16. using ii = pair<int, int>;
  17. using vii = vector<ii>;
  18. using vi = vector<int>;
  19. using graph = vector<vi>;
  20. const int INF = 0x3f3f3f3f;
  21. const int MAXN = 200005;
  22. const ll mod = 1000000007;
  23.  
  24.  
  25. int fw[MAXN];
  26.  
  27. int sum(int i) {
  28.     int sum = 0;
  29.     for (; i; i -= i&-i){
  30.         sum += fw[i];
  31.     }
  32.     return sum;
  33. }
  34.  
  35. int rangeSum (int i, int j) {
  36.     return sum(j) - sum(i-1);
  37. }
  38.  
  39. void update (int n, int i, int delta) {
  40.     for (; i<= n; i += i&-i) {
  41.         fw[i] += delta;
  42.     }
  43. }
  44.  
  45. void buildFW (vector<int> a, int n) {
  46.     for (int i = 0; i <= n; ++i) {
  47.         fw[i] = 0;
  48.     }
  49.     for (int i = 1; i <= n; ++i) {
  50.         update(n, i, a[i-1]);
  51.     }
  52. }
  53.  
  54. int seq[MAXN];
  55.  
  56. int main()
  57. {
  58.     SYNC
  59.     int n;
  60.     vector<int> seen(MAXN);
  61.     while (cin >> n && n) {
  62.         seen.assign(MAXN, 0);
  63.         int sum = 0;
  64.         for (int i = 0; i < n; ++i) {
  65.             cin >> seq[i];
  66.         }
  67.         buildFW(seen, n);
  68.         for (int i = 0; i < n; ++i) {
  69.             sum += rangeSum(seq[i], n);
  70.             update(n, seq[i], 1);
  71.         }
  72.         if (sum&1) {
  73.             cout << "Marcelo\n";
  74.         } else {
  75.             cout << "Carlos\n";
  76.         }
  77.  
  78.     }
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment