Submission #294978

#TimeUsernameProblemLanguageResultExecution timeMemory
294978ASDF123Arranging Shoes (IOI19_shoes)C++17
Compilation error
0 ms0 KiB
//#include "shoes.h" #include <bits/stdc++.h> #define ll long long #define szof(s) (int)s.size() //#include <chrono> //#include <random> //mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); using namespace std; const int N = (int)2e5 + 5; ll tree[N * 4], lz[N * 4]; unordered_map <int, int> pos; bool used[N]; void push(int v, int tl, int tr) { if (!lz[v]) { return; } if (tl != tr) { lz[v + v + 1] += lz[v]; lz[v + v + 2] += lz[v]; } else { tree[v] += lz[v]; } lz[v] = 0; } int get(int pos, int v = 0, int tl = 0, int tr = N) { push(v, tl, tr); if (tl == tr) { return tree[v]; } int mid = (tl + tr) >> 1; if (pos <= mid) { return get(pos, v + v + 1, tl, mid); } else { return get(pos, v + v + 2, mid + 1, tr); } } void upd(int l, int r, ll val, int v = 0, int tl = 0, int tr = N) { if (l > r) { return; } push(v, tl, tr); if (l <= tl && tr <= r) { lz[v] += val; push(v, tl, tr); return; } if (l > tr || tl > r) { return; } int mid = (tl + tr) >> 1; upd(l, r, val, v + v + 1, tl, mid); upd(l, r, val, v + v + 2, mid + 1, tr); } ll count_swaps(vector<int> s) { ll ans = 0; int n = szof(s) / 2; for (int i = 0; i < n * 2; i++) { pos[s[i]] = i; } for (int i = 0; i < n * 2; i++) { if (!used[i]) { used[pos[s[i]]] = used[pos[-s[i]]] = 1; ll l = pos[s[i]] + get(pos[s[i]]); ll r = pos[-s[i]] + get(pos[-s[i]]); ans += r - (l + 1); if (s[i] > 0) { ans++; } upd(pos[s[i]] + 1, pos[-s[i]] - 1, 1); } } return ans; } signed main() { int n; cin >> n; vector <int> s(n); for (int &el : s) { cin >> el; } cout << count_swaps(s); }

Compilation message (stderr)

/tmp/cco59VIm.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccezwBni.o:shoes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status