제출 #1348335

#제출 시각아이디문제언어결과실행 시간메모리
1348335ykilraArranging Shoes (IOI19_shoes)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

const int N = 4e5+50;

struct bit{
    ll val[N];
    void add(int id, int x) {
        while (id < N) {
            val[id] += x;
            id += id & -id;
        }
    }
    int query(int id) {
        int sum = 0;
        while (id > 0) {
            sum += val[id];
            id -= id & -id;
        }
        return sum;
    }
}b;

ll n, a[N], ans;
vector<int> v[N];
bool paired[N];

long long count_swap(vector<int> S) {
    int n = S.size();
    for (int i = 1; i <= n; i++) {
        a[i] = S[i-1];
        v[a[i]+n].push_back(i);
        b.add(i,1);
    }
    for (int i = n; i >= 1; i--) {
        if (paired[i]) continue;
        v[a[i]+n].pop_back();
        int pos = v[n-a[i]].back();
        v[n-a[i]].pop_back();
        paired[pos] = 1;
        b.add(pos,-1);
        ans += b.query(i-1) - b.query(pos-1);
        if (a[i] < 0) ans++; // left foot
    }
    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccJ8vaw6.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