Submission #1335173

#TimeUsernameProblemLanguageResultExecution timeMemory
1335173zhehanArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long

vector<int> ft;

void upd(int p, int v) {
  while (p < ft.size()) {
    ft[p] += v;
    p += p & (-p);
  }
}

int query(int p) {
  int sum = 0;
  while (p > 0) {
    sum += ft[p];
    p -= p & (-p);
  }
  return sum;
}

int invquery(int p) { return query(ft.size() - 1) - query(p); }

long long count_swaps(std::vector<signed> s) {
  int n = s.size() / 2;
  map<int, int> ind;
  vector<int> inv(2 * n, 0);
  int c = 1;
  int tinv = 0;
  for (int i = 0; i < 2 * n; ++i) {
    if (ind[abs(s[i])] == 0) {
      ind[abs(s[i])] = c++;
      inv[i] = 2 * ind[abs(s[i])] - 1;
      if (s[i] > 0) {
        ++tinv;
      }
    } else {
      inv[i] = 2 * ind[abs(s[i])];
      ind[abs(s[i])] = 0;
    }
  }
  ft = vector<int>(c * 2, 0);
  for (auto e : inv) {
    tinv += invquery(e);
    upd(e, 1);
  }
  return tinv;
}

signed main() {
  int n;
  cin >> n;
  vector<signed> s(2 * n, 0);
  for (int i = 0; i < 2 * n; ++i) {
    cin >> s[i];
  }
  cout << count_swaps(s);
  return 0;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cc6xyy9e.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccrAXeKE.o:shoes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status