제출 #1052733

#제출 시각아이디문제언어결과실행 시간메모리
1052733Itamar통행료 (IOI18_highway)C++14
컴파일 에러
0 ms0 KiB
using namespace std; #include<vector> void answer(std::vector<int> C, std::vector<int> X, std::vector<int> Y); int find_s(int M, vector<int> A){ int N = A.size(); A.push_back(0); std::vector<int> C(M + 1,19); std::vector<int> X(2*N+1), Y(2*N+1); int l = 0, r = N; int wr = 0; while(l<r){ int rt = l-1; int lt = rt - (r-l)/2; int it = r; for(int i = lt; i<=rt; i++){ if(r == N){ Y[wr]=it; it--; if(it >=l){ X[wr]=it; }else{ X[wr] = 2; } it--;wr++; } else{ Y[wr]=it; it--; if(it >=l){ X[wr]=it; }else{ X[wr] = 2; } it--,wr++; } } l=lt,r=rt; } return l; } #include <algorithm> #define vi vector<int> vi getper(int N){ if(N==1)return {0}; vi per1= getper(N/2), per2 = getper((N+1)/2); vi ans; for(int i = 0; i < N; i++){ if(i%2){ ans.push_back(per1[i/2]+(N+1)/2); }else{ ans.push_back(per2[i/2]); } } return ans; } void create_circuit(int M, std::vector<int> A) { int s = find_s(M,A); int N = A.size(); vector<int> per; A.push_back(0); std::vector<int> C(M + 1,s); std::vector<int> X(-s), Y(-s); int l = 0, r = N; int wr = 0; while(l<r){ int rt = l-1; int lt = rt - (r-l)/2; int it = r; for(int i = lt; i<=rt; i++){ if(r == N){ Y[wr]=it; it--; if(it != r-1 || (r-l)%2){ X[wr]=it; it--; }else{ X[wr] = s; } wr++; } else{ Y[wr]=it; it--; if(it != r-1 || (r-l)%2){ X[wr]=it; it--; }else{ X[wr] = s; } wr++; } } l=lt,r=rt; } int st = s; while(st!=N){ if(st < 0){ int stag = X[-1-st]; swap(X[-1-st],Y[-1-st]); st = stag; }else{ per.push_back(st); st = s; } } per.push_back(N); vi q(N+1); for(int i = 0; i <= N; i++)q[per[i]]=i; for(int i = 0; i< (-s); i++){ if(X[i]>=0)X[i] = A[q[X[i]]]; if(Y[i]>=0)Y[i] = A[q[Y[i]]]; } per.push_back(0); answer(C,X,Y); }

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

/usr/bin/ld: /tmp/ccNQmiQe.o: in function `create_circuit(int, std::vector<int, std::allocator<int> >)':
highway.cpp:(.text+0xbdf): undefined reference to `answer(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
/usr/bin/ld: /tmp/ccbciy2e.o: in function `main':
grader.cpp:(.text.startup+0x16c): undefined reference to `find_pair(int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, int, int)'
collect2: error: ld returned 1 exit status