제출 #994899

#제출 시각아이디문제언어결과실행 시간메모리
994899NintsiChkhaidze도서관 (JOI18_library)C++17
19 / 100
262 ms428 KiB
#include "library.h" #include <bits/stdc++.h> #define ll long long #define ull unsigned long long using namespace std; int n; void Solve(int N){ n = N; vector<int> ans(N),fix(N),del(N); for(int i = 0; i < N; i++) { ans[i] = fix[i] = 0; } int cnt = 0; for (int i = 0; i < N; i++){ vector <int> M(N); for (int j=0;j<N;j++){ M[j] = 1; } M[i] = 0; int A; if (N == 1) A = 1; else A = Query(M); if (A == 1){ ++cnt; fix[i] = 1; if (cnt == 1) ans[0] = i; else {ans[N - 1] = i; break;} } } for (int i = 0; i + 2 < N; i++){ int find = 0; for (int j = 0; j < 10; j++){ vector <int> M(N); int ones=0; for (int w = 0; w < N; w++){ M[w] = 0; if (fix[w]) M[w] = 0; else { int bt = ((w >> j) & 1); if (bt) M[w] = 1,++ones; } } M[ans[i]] = 1; ones++; if (ones == 1) continue; int A = Query(M); M[ans[i]] = 0; ones--; int B; if (ones == 0) B = 0; else B = Query(M); if (A == B) find |= (1<<j); } fix[find] = 1; ans[i + 1] = find; } for (int i=0;i<N;i++) ans[i] += 1; Answer(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...