Submission #184008

#TimeUsernameProblemLanguageResultExecution timeMemory
184008Ruxandra985Arranging Shoes (IOI19_shoes)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "shoes.h" #define DIMN 100010 using namespace std; int aib[DIMN] , f[DIMN]; deque <int> poz[DIMN]; map <int,int> code; void update (int i , int n , int x){ for (;i<=n;i = i + (i & (-i))) aib[i]+=x; } int query (int i){ int sol = 0; for (;i;i = i - (i & (-i))) sol+=aib[i]; return sol; } long long count_swaps (int v[]){ int n , i , p1 , p2; long long sol=0; n = 0; while (v[n]) n++; n = n/2; for (i=0;i<2*n;i++){ if (!code[max(v[i] , -v[i])]) code[max(v[i] , -v[i])] = i + 1; } for (i=0;i<2*n;i++){ poz[code[max(v[i] , -v[i])]].push_back(i); /// a doua pozitie } for (i=0;i<2*n;i++){ if (!f[i]){ /// nu ai mai intalnit p1 = i + query(i + 1); p2 = poz[code[max(v[i] , -v[i])]].front(); poz[code[max(v[i] , -v[i])]].pop_front(); while (p2 <= i){ p2 = poz[code[max(v[i] , -v[i])]].front(); poz[code[max(v[i] , -v[i])]].pop_front(); } f[p2] = 1; p2 += query(p2 + 1); sol = sol + (p2 - p1 - 1); if (v[i] > 0) sol++; /// mai faci un swap update (i + 1, 2*n , 1); update (poz[code[max(v[i] , -v[i])]].front()+1 , 2*n , -1); } } return sol; }

Compilation message (stderr)

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