# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
260428 | 2020-08-10T08:54:51 Z | 송준혁(#5057) | 도서관 (JOI18_library) | C++17 | 39 ms | 376 KB |
#include <cstdio> #include <vector> #include "library.h" using namespace std; int N; int R[1010]; vector<int> ans, Q; void Solve(int n){ N = n; Q.resize(N); for (int i=0; i<N; i++) R[i] = i; for (int i=0; i<N; i++){ for (int j=0; j<N; j++) Q[j] = (i==j)?0:1; if (Query(Q) == 1){ ans.push_back(i); for (int j=i; j<N; j++) swap(R[j], R[j+1]); break; } } for (int i=N-2; i>0; i--){ int l=0, h=i, k; while (l<=h){ int m=l+h>>1; for (int j=0; j<N; j++) Q[j] = 0; for (int j=0; j<=m; j++) Q[R[j]] = 1; int x = Query(Q); Q[ans.back()] = 1; int y = Query(Q); if (x == y) k=m, h=m-1; else l=m+1; } ans.push_back(R[k]); for (int j=k; j<i; j++) swap(R[j], R[j+1]); } ans.push_back(R[0]); Answer(ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 39 ms | 376 KB | Wrong Answer [5] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 39 ms | 376 KB | Wrong Answer [5] |
2 | Halted | 0 ms | 0 KB | - |