Submission #1307488

#TimeUsernameProblemLanguageResultExecution timeMemory
1307488hectormedranoArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB
#include <cstdio> #include <cassert> #include <bits/stdc++.h> using namespace std; typedef long long ll; vector<ll> st(8e5+5, 0); void update(ll l, ll r, ll ind, ll pos){ if(l == r){st[ind]++; return;} ll m = (l+r)/2; if(pos<=m){ update(l, m, 2*ind, pos); } else { update(m+1, r, 2*ind+1, pos); } st[ind] = st[2*ind] + st[2*ind+1]; } ll query(ll l, ll r, ll ind, ll ql, ll qr){ if(r<ql or qr<l){return 0;} if(ql<=l and r<=qr){return st[ind];} ll m = (l+r)/2; return query(l, m, 2*ind, ql, qr) + query(m+1, r, 2*ind+1, ql, qr); } ll count_swaps(vector<int> s) { ll inv = 0; ll n = s.size(); n = n/2; vector<pair<ll, ll>> a; vector<queue<ll>> q(n+1); for(ll i=0;i<2*n;i++){ if(s[i]<0){ a.push_back({s[i], i}); a.push_back({-s[i], -1}); } else { q[s[i]].push(i); } } for(ll i=0;i<2*n;i++){ if(a[i].first > 0){ a[i].second = q[a[i].first].front(); q[a[i].first].pop(); } } for(ll i=0;i<2*n;i++){ inv += query(0, 2*n-1, 1, a[i].second, 2*n-1); update(0, 2*n-1, 1, a[i].second); } return inv; } int main() { int n; assert(1 == scanf("%d", &n)); vector<int> S(2 * n); for (int i = 0; i < 2 * n; i++) assert(1 == scanf("%d", &S[i])); fclose(stdin); long long result = count_swaps(S); printf("%lld\n", result); fclose(stdout); return 0; }

Compilation message (stderr)

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