Submission #230745

#TimeUsernameProblemLanguageResultExecution timeMemory
230745Dilshod_ImomovLibrary (JOI18_library)C++17
100 / 100
444 ms384 KiB
#include <bits/stdc++.h> #include "library.h" using namespace std; const int N = 1e3 + 7; void Solve(int n) { vector < int > M(n, 1), res(n), vc(n); if ( n == 1 ) { res[0] = 1; Answer(res); return; } int left = 0; for ( ; left < n; left++ ) { M[left] = 0; if ( Query(M) == 1 ) { break; } M[left] = 1; } res[0] = left + 1; int ind = 0; for ( int i = 0; i < n; i++ ) { if ( i != left ) { vc[ind++] = i + 1; } } // for ( int i = 0; i < ind; i++ ) { // cout << vc[i] << ' '; // } // cout << '\n'; fill( M.begin(), M.end(), 0 ); for ( int i = 1; i < n; i++ ) { // for ( int j = 0; j < ind - 1; j++ ) { // cout << vc[j] << ' '; // } // cout << '\n'; int l = 0, r = ind - 1, md, ans = 0; // cout << i << '\n'; while ( r - l >= 1 ) { md = (l + r) / 2; // cout << l << ' ' << md << ' ' << r << '\n'; for ( int j = l; j <= md; j++ ) { M[vc[j] - 1] = 1; } // for ( auto j: M ) { // cout << j << ' '; // } // cout << '\n'; int res1 = Query(M); M[res[i - 1] - 1] = 1; // for ( auto j: M ) { // cout << j << ' '; // } // cout << '\n'; int res2 = Query(M); for ( int j = l; j <= md; j++ ) { M[vc[j] - 1] = 0; } M[res[i - 1] - 1] = 0; if ( res1 == res2 ) { r = md; ans = md; } else { l = md + 1; } } res[i] = vc[l]; // cout << vc[l] << " --------------\n"; swap( vc[l], vc[ind - 1] ); ind--; } Answer(res); }

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:40:31: warning: variable 'ans' set but not used [-Wunused-but-set-variable]
   int l = 0, r = ind - 1, md, ans = 0;
                               ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...