제출 #47875

#제출 시각아이디문제언어결과실행 시간메모리
47875Just_Solve_The_Problem도서관 (JOI18_library)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include "grader.cpp" //#include "library.h" #define pb push_back #define ok cerr << "OK\n"; using namespace std; const int NN = 1e3 + 7; bool used[NN]; void solveSmall(int N) { vector < int > M(N, 0); vector < int > ans, vv; if (N == 1) { ans.pb(1); Answer(ans); return ; } deque < int > dq; int n = N; int cnt = 0; M[0] = 1; dq.pb(0); used[0] = 1; for (int i = 1; i < n; i++) { M[i] = 1; int qq = Query(M); if (qq == 1) { cnt++; vv.pb(i); } M[i] = 0; } M[0] = 0; used[vv[0]] = 1; dq.push_front(vv[0]); if (cnt == 2) { dq.push_back(vv[1]); used[vv[1]] = 1; } vv.clear(); cnt++; while (cnt < n) { bool fl = 1; M[dq.back()] = 1; for (int j = 0; j < n; j++) { if (used[j]) continue; M[j] = 1; int qq = Query(M); M[j] = 0; if (qq == 1) { fl = 0; M[dq.back()] = 0; dq.pb(j); M[j] = 1; used[j] = 1; cnt++; break; } } M[dq.back()] = 0; if (fl) break; } for (int i = 0; i < n; i++) M[i] = 0; while (cnt < n) { bool fl = 1; M[dq.front()] = 1; for (int j = 0; j < n; j++) { if (used[j]) continue; M[j] = 1; int qq = Query(M); M[j] = 0; if (qq == 1) { fl = 0; M[dq.front()] = 0; dq.push_front(j); M[dq.front()] = 1; used[j] = 1; cnt++; break; } } if (fl) break; } for (int to : dq) { ans.pb(to + 1); } Answer(ans); } void Solve(int N) { vector < int > M(N, 1); // if (N <= 200) { // solveSmall(N); // return ; // } int n = N; vector < int > ans, v1, v2; int cnt = 0, qq; while (cnt < n - 1) { for (int i = 0; i < n && cnt < n - 1; i++) { if (used[i]) continue; M[i] = 0; qq = Query(M); M[i] = 1; if (qq == 1) { if (v1.empty()) { v1.pb(i); } else { M[v1.back()] = 1; M[i] = 0; qq = Query(M); M[v1.back()] = 0; if (qq == 1) { v2.pb(i); } else { v1.pb(i); } } used[i] = 1; cnt++; M[i] = 0; } } if (cnt >= n - 1) break; for (int i = n - 1; i >= 0 && cnt < n - 1; i--) { if (used[i]) continue; M[i] = 0; qq = Query(M); M[i] = 1; if (qq == 1) { if (v1.empty()) { v1.pb(i); } else { M[v1.back()] = 1; qq = Query(M); M[v1.back()] = 0; if (qq == 1) { v2.pb(i); } else { v1.pb(i); } } used[i] = 1; cnt++; M[i] = 0; } } } for (int i = 0; i < n; i++) { if (!used[i]) { v1.pb(i); break; } } for (int to : v1) { ans.pb(to + 1); } for (int i = (int)v2.size() - 1; i >= 0; i--) { ans.pb(v2[i] + 1); } Answer(ans); }

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

/tmp/cchcAS1v.o: In function `Query(std::vector<int, std::allocator<int> > const&)':
library.cpp:(.text+0x130): multiple definition of `Query(std::vector<int, std::allocator<int> > const&)'
/tmp/ccBUWvPW.o:grader.cpp:(.text+0x130): first defined here
/tmp/cchcAS1v.o:(.bss+0x3f0): multiple definition of `__my_judge_::judge'
/tmp/ccBUWvPW.o:(.bss+0x0): first defined here
/tmp/cchcAS1v.o: In function `Answer(std::vector<int, std::allocator<int> > const&)':
library.cpp:(.text+0x480): multiple definition of `Answer(std::vector<int, std::allocator<int> > const&)'
/tmp/ccBUWvPW.o:grader.cpp:(.text+0x480): first defined here
/tmp/cchcAS1v.o: In function `main':
library.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccBUWvPW.o:grader.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status