제출 #965390

#제출 시각아이디문제언어결과실행 시간메모리
965390SyriusArranging Shoes (IOI19_shoes)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include "shoes.h" using namespace std; // #define int long long #define ll long long #define ff first #define ss second #define pint pair < int , int > #define fast ios_base::sync_with_stdio(NULL); cin.tie(NULL) const int inf = 1e9 + 9; const int mxn = 2e5 + 2; const int mod = 1e9 + 7; ll fn[mxn]; void update(int x , int v) { for (; x < mxn; x += x&-x) { fn[x] += v; } } ll query(int l , int r) { ll ans = 0; l--; for (; r > 0; r -= r&-r) ans += fn[r]; for (; l > 0; l -= l&-l) ans -= fn[l]; return ans; } queue < ll > le[mxn] , ri[mxn]; bool b[mxn]; ll count_swaps(vector < ll > v) { ll n = v.size() / 2; for (ll i = 0; i < 2*n; i++) { if (v[i] < 0) le[-v[i]].push(i); else ri[v[i]].push(i); update(i+1 , 1); } ll ans = 0; for (ll i = 0; i < 2*n; i++) { if (b[i]) continue; ll id; if (v[i] < 0) { id = ri[-v[i]].front(); ans += query(i+2 , id); update(id+1 , -1); } else { id = le[v[i]].front(); ans += query(i+2 , id) + 1; update(id+1 , -1); } ri[abs(v[i])].pop(); le[abs(v[i])].pop(); b[id] = 1; } return ans; }

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

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