Submission #469315

#TimeUsernameProblemLanguageResultExecution timeMemory
469315keta_tsimakuridzeLibrary (JOI18_library)C++14
100 / 100
572 ms308 KiB
#include<bits/stdc++.h> #include "library.h" #define f first #define s second #define pii pair<int,int> using namespace std; const int N = 1e3 + 5, mod = 1e9 + 7; // ! int t, used[N],n; /* int Query(vector<int> v){ for(int j = 0; j < n; j++) { cout << v[j] <<" "; } cout << endl; int x; cin >> x; return x; } void Answer(vector<int> ans){ for(int i = 0; i < n; i++) { cout << ans[i] } } */ int ask(vector<int> v) { return Query(v);} void Solve(int n) { vector<int> v(n),ans(n); if(n == 1) { ans[0] = 1; Answer(ans); return; } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++){ if(i == j) v[i] = 0; else v[j] = 1; } if(ask(v) == 1) { ans[0] = i; used[ans[0]] = 1; for(int j = 0; j < n; j ++) v[j] = 0; break; } } for(int i = 1; i < n; i++){ #define left Left vector<int> left; for(int j = 0; j < n; j++){ if(!used[j]) left.push_back(j); } int l = 0, r = left.size(); r--; while(l <= r){ int mid = (l + r) / 2; for(int j = 0; j < left.size(); j++){ if(j <= mid) v[left[j]] = 1; else v[left[j]] = 0; } v[ans[i - 1]] = 1; int c1 = ask(v); v[ans[i - 1]] = 0; int c2 = ask(v); if(c1 == c2) ans[i] = left[mid], r = mid - 1; else l = mid + 1; } used[ans[i]] = 1; } for(int i = 0; i < n; i++) ++ans[i]; Answer(ans); } /* main(){ cin >> n; solve(n); } */

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:56:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |    for(int j = 0; j < left.size(); j++){
      |                   ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...