Submission #579597

#TimeUsernameProblemLanguageResultExecution timeMemory
579597EliasArt Collections (BOI22_art)C++17
70 / 100
1614 ms63460 KiB
#include <bits/stdc++.h> #ifndef _DEBUG #include <art.h> #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx") #endif using namespace std; #define lint int64_t #ifdef _DEBUG int publish(vector<int> R) { for (int i : R) cout << i << " "; cout << "\n"; int x; cin >> x; return x; } void answer(vector<int> R) { cout << "Answer: "; for (int i : R) cout << i << " "; cout << "\n"; } #endif void solve(int N) { int n = N; vector<int> position(n); vector<int> empty(n); for (int i = 0; i < n; i++) empty[i] = i + 1; map<vector<int>, int> answers; for (int i = 0; i < n; i++) { vector<int> queryA = empty; queryA.erase(queryA.begin() + i); vector<int> queryB = queryA; queryA.insert(queryA.begin(), i + 1); queryB.push_back(i + 1); int a, b; if (answers.count(queryA)) a = answers[queryA]; else a = answers[queryA] = publish(queryA); if (answers.count(queryB)) b = answers[queryB]; else b = answers[queryB] = publish(queryB); int diff = a - b; int pos = (n + diff - 1) / 2; position[i] = pos; } vector<int> sol(n); for (int i = 0; i < n; i++) { sol[position[i]] = i + 1; } answer(sol); } #ifdef _DEBUG int main() { int n; cin >> n; solve(n); } #endif

Compilation message (stderr)

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...