제출 #1332405

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

struct fenwick{
    vector<ll> fw;
    int n;
    fenwick(int _n){
        n=_n;
        fw.resize(n+2,0);
    }
    void update(int idx,ll val){
        for(;idx<=n;idx+=idx&(-idx)){
            fw[idx] += val;
        }
    }
    ll get(int idx){
        ll res=0;
        for(;idx>0;idx -= idx&(-idx)){
            res += fw[idx];
        }
        return res;
    }
};
ll cntinverse(vector<int> s){
    int n=s.size();
    fenwick fw(n);
    ll ans=0;
    for(int i=0;i<n;i++){
        ans += fw.get(n-s[i]);
        fw.update(n-s[i]+1,1);
    }
    return ans;
}
ll minswap(vector<int> a,vector<int> b){
    int n=a.size();
    vector<int> cntnum(n+1,0);
    vector<vector<int>> pos(n+1);
    for(int i=0;i<n;i++){
        pos[a[i]].push_back(i+1);
    }
    for(int i=0;i<n;i++){
        b[i]=pos[b[i]][cntnum[b[i]]];
        cntnum[b[i]]++;
    }
    ll ans=cntinverse(b);
    return ans;
}
ll count_swap(vector<int> s){
    int n=s.size();
    vector<vector<int>> left(n+1),right(n+1);
    for(int i=0;i<n;i++){
        if(s[i]<0){
            left[abs(s[i])].push_back(i+1);
        }else{
            right[abs(s[i])].push_back(i+1);
        }
    }
    bool ok=1;
    for(int i=0;i<=n;i++){
        if(left[i].size() != right[i].size()){
            ok=0;
        }
    }
    if(!ok){
        return -1;
    }
    vector<int> cntnum(n+1,0);
    vector<int> c(n);
    int inow=0;
    for(int i=0;i<n;i++){
        if(s[i]<0){
            c[2*inow]=left[abs(s[i])][cntnum[abs(s[i])]];
            c[2*inow+1]=right[abs(s[i])][cntnum[abs(s[i])]];
            cntnum[abs(s[i])]++;
            inow++;
        }
    }
    ll ans=cntinverse(c);
    return ans;
}


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

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