Submission #1280469

#TimeUsernameProblemLanguageResultExecution timeMemory
1280469cnasteaArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
int d[600000], m = 1;

void add(int l, int r){
    l += m; r += m;
    while(l < r){
        if(l%2) d[l++ - 1]++; l /= 2;
        if(r%2) d[--r - 1]++; r /= 2;
    }
}

int sum(int x){
    int s = 0; x += m;
    while(x){
        s += d[x-1]; x /= 2;
    }
    return s;
}

int count_swaps(vector<int> a){
    int n = a.size(), r = 0, b[n]; set<int> p[n/2+1], q[n/2+1];
    while(m < n) m *= 2;
    for(int i = 0; i < n; i++){
        if(a[i] < 0) p[-a[i]].insert(i); else q[a[i]].insert(i); b[i] = 0;
    }
    for(int i = 0; i < n; i++){
        if(b[i]) continue; b[i] = 1;
        if(a[i] > 0){
            q[a[i]].erase(q[a[i]].begin());
            int w = *p[a[i]].begin(); p[a[i]].erase(p[a[i]].begin());
            r += w+sum(w)-sum(i)-i; add(i, w); b[w] = 1;
        }
        else{
            p[-a[i]].erase(p[-a[i]].begin());
            int w = *q[-a[i]].begin(); q[-a[i]].erase(q[-a[i]].begin());
            r += w+sum(w)-sum(i)-i-1; add(i, w); b[w] = 1;
        }
    }
    return r;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cc9IipRK.o: in function `main':
grader.cpp:(.text.startup+0x26b): undefined reference to `count_swaps(std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status