Submission #579653

#TimeUsernameProblemLanguageResultExecution timeMemory
579653JosiaArt Collections (BOI22_art)C++17
0 / 100
3 ms208 KiB
#include <bits/stdc++.h> #include <art.h> using namespace std; int nPublic; // map<pair<int, int>, bool> dict; // bool compare(int a, int b) { // if (dict.count({a, b})) return dict[{a, b}]; // vector<int> ask = {a}; // for (int i = 0; i<nPublic; i++) { // if (i+1 == a || i+1 == b) continue; // ask.push_back(i+1); // } // ask.push_back(b); // int AB = publish(ask); // ask[0] = b; // ask[nPublic-1] = a; // int BA = publish(ask); // dict[{a, b}] = AB < BA; // dict[{b, a}] = BA < AB; // return AB < BA; // } void solve(int n) { nPublic = n; vector<int> a; for (int i = 0; i<n; i++) { a.push_back(i+1); } vector<int> between0andme(n); for (int i = 1; i<n; i++) { swap(a[i], a[n-1]); int one = publish(a); swap(a[n-1], a[0]); int two = publish(a); swap(a[n-1], a[0]); swap(a[i], a[n-1]); between0andme[i] = abs(one-two); } int extreme = max_element(between0andme.begin(), between0andme.end())-between0andme.begin(); vector<int> newA = {extreme}; for (int i = 0; i<n; i++) { if (i == extreme) continue; newA.push_back(i+1); } vector<pair<int, int>> isRank(n); isRank[0] = {0, extreme}; for (int i = 1; i<n; i++) { swap(a[n-1], a[i]); int one = publish(a); swap(a[n-1], a[0]); int two = publish(a); swap(a[n-1], a[i]); isRank[i] = {abs(one-two), a[i]}; } sort(isRank.begin(), isRank.end()); vector<int> ranking; for (auto i: isRank) ranking.push_back(i.second); if (publish(ranking)) reverse(ranking.begin(), ranking.end()); answer(ranking); answer(a); } // signed main() { // cin.tie(0); // ios_base::sync_with_stdio(0); // int n; cin >> n; // deque<int> a(n); // for (int i = 0; i<n; i++) cin >> a[i]; // for (int i = 0; i<n; i++) { // int cnt = 0; // for (int i = 0; i<n; i++) { // for (int j = i+1; j<n; j++) { // if (a[i]>a[j]) cnt++; // } // } // a.push_back(a[0]); // a.pop_front(); // cout << cnt << "\n"; // } // return 0; // }

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...