제출 #994833

#제출 시각아이디문제언어결과실행 시간메모리
994833NintsiChkhaidze도서관 (JOI18_library)C++17
19 / 100
229 ms444 KiB
#include "library.h" #include <bits/stdc++.h> using namespace std; int n; bool check(int x,int y){ vector <int> M(n); M[x] = 1; M[y] = 1; return (Query(M) == 1); } void Solve(int N){ n = N; vector<int> ans(N),fix(N); for(int i = 0; i < N; i++) { ans[i] = fix[i] = 0; } int l = 0,r = N - 1; while (l <= r){ vector <int> M(N); for (int i = 0; i < N; i++) { M[i] = 1; if (fix[i]) M[i] = 0; } if (l == r){ for (int i=0;i<N;i++){ if (M[i]) { ans[l] = i; break; } } break; } int cnt = 0; for (int i = 0; i < N; i++){ if (!M[i]) continue; M[i] = 0; if (Query(M) == 1){ ++cnt; if (cnt == 1) ans[l] = i; else ans[r] = i; fix[i] = 1; } M[i] = 1; } if (l && !check(ans[l - 1],ans[l])){ swap(ans[l],ans[r]); } l += 1; r -= 1; } for (int i=0;i<N;i++) ans[i] += 1; Answer(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...