Submission #171069

#TimeUsernameProblemLanguageResultExecution timeMemory
171069SamAndXoractive (IZhO19_xoractive)C++17
6 / 100
7 ms376 KiB
#include "interactive.h" #include <bits/stdc++.h> using namespace std; const int N = 102; int ans[N]; vector<int> gget_pairwise_xor(vector<int> v) { if (v.empty()) return v; vector<int> res = get_pairwise_xor(v); reverse(res.begin(), res.end()); for (int i = 0; i < v.size(); ++i) res.pop_back(); reverse(res.begin(), res.end()); vector<int> yres; for (int i = 0; i < res.size(); i += 2) yres.push_back(res[i]); return yres; } vector<int> han(vector<int> a, vector<int> b) { vector<int> res; sort(a.begin(), a.end()); sort(b.begin(), b.end()); int j = 0; for (int i = 0; i < a.size(); ++i) { if (j < b.size() && a[i] == b[j]) { ++j; continue; } res.push_back(a[i]); } return res; } vector<int> hat(vector<int> a, vector<int> b) { vector<int> res; sort(a.begin(), a.end()); sort(b.begin(), b.end()); int i = 0, j = 0; while (1) { if (i == a.size() || j == b.size()) return res; if (a[i] == b[j]) { res.push_back(a[i]); ++i; ++j; continue; } if (a[i] < b[j]) ++i; else ++j; } } vector<int> v[8]; vector<int> t; vector<int> v1, v2; vector<int> guess(int n) { ans[1] = ask(1); for (int i = 0; i < 7; ++i) { t.clear(); t.push_back(1); for (int x = 2; x <= n; ++x) { if ((x & (1 << i))) t.push_back(x); } v1 = gget_pairwise_xor(t); t.clear(); for (int x = 2; x <= n; ++x) { if ((x & (1 << i))) t.push_back(x); } v2 = gget_pairwise_xor(t); v[i] = han(v1, v2); for (int j = 0; j < v[i].size(); ++j) v[i][j] ^= ans[1]; t = han(v[i], hat(v[i], v[7])); for (int j = 0; j < t.size(); ++j) v[7].push_back(t[j]); } v[7].push_back(ask(n)); for (int x = 2; x <= n; ++x) { t.clear(); t = v[7]; for (int i = 0; i < 7; ++i) { if ((x & (1 << i))) t = hat(t, v[i]); else t = hat(t, han(v[7], v[i])); } ans[x] = t[0]; } ///////////////////////////9////////////////////// vector<int> vans; for (int i = 1; i <= n; ++i) vans.push_back(ans[i]); return vans; }

Compilation message (stderr)

Xoractive.cpp: In function 'std::vector<int> gget_pairwise_xor(std::vector<int>)':
Xoractive.cpp:14:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < v.size(); ++i)
                     ~~^~~~~~~~~~
Xoractive.cpp:18:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < res.size(); i += 2)
                     ~~^~~~~~~~~~~~
Xoractive.cpp: In function 'std::vector<int> han(std::vector<int>, std::vector<int>)':
Xoractive.cpp:29:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < a.size(); ++i)
                     ~~^~~~~~~~~~
Xoractive.cpp:31:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (j < b.size() && a[i] == b[j])
             ~~^~~~~~~~~~
Xoractive.cpp: In function 'std::vector<int> hat(std::vector<int>, std::vector<int>)':
Xoractive.cpp:48:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (i == a.size() || j == b.size())
             ~~^~~~~~~~~~~
Xoractive.cpp:48:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (i == a.size() || j == b.size())
                              ~~^~~~~~~~~~~
Xoractive.cpp: In function 'std::vector<int> guess(int)':
Xoractive.cpp:89:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int j = 0; j < v[i].size(); ++j)
                         ~~^~~~~~~~~~~~~
Xoractive.cpp:92:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int j = 0; j < t.size(); ++j)
                         ~~^~~~~~~~~~
Xoractive.cpp:111:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
     for (int i = 1; i <= n; ++i)
     ^~~
Xoractive.cpp:113:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  return vans;
  ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...