# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
538142 | 2022-03-16T06:19:19 Z | penguin133 | 도서관 (JOI18_library) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "library.h" using namespace std; void Solve(int N){ if(N <= 2){ vector<int>ans; for(int i=1;i<=N;i++)ans.push_back(i); return ans; } int A[N+1]; for(int i=1;i<=N;i++)A[i] = 0; vector<int>v; for(int i=1;i<=N;i++)v.push_back(1); vector<int>fin; for(int i=1;i<=N;i++){ v[i-1] = 0; int ans = Query(v); if(ans == 1){fin.push_back(i), A[i] = 1; break;} v[i-1] = 1; } for(int i=2;i<=N;i++){ int x = fin.back(); v.clear(); for(int k=0;k<N;k++)v.push_back(0); v[x-1] = 1; for(int j=1;j<=N;j++){ if(A[j])continue; v[j-1] = 1; int ans = Query(v); if(ans == 1){fin.push_back(j), A[j] = 1; break;} v[j-1] = 0; } } Answer(fin); }