제출 #784723

#제출 시각아이디문제언어결과실행 시간메모리
784723Soumya1Xoractive (IZhO19_xoractive)C++17
88 / 100
8 ms896 KiB
#include "interactive.h" #include <bits/stdc++.h> using namespace std; int a0; vector<int> get_values(vector<int> v) { int has = -1; for (int i = 0; i < v.size(); i++) { if (v[i] == 1) has = i; } if (has != -1) v.erase(v.begin() + has); auto v1 = get_pairwise_xor(v); v.push_back(1); auto v2 = get_pairwise_xor(v); vector<int> final; multiset<int> s; for (int i : v2) s.insert(i); for (int i : v1) s.erase(s.find(i)); s.erase(s.find(0)); set<int> ss; for (int i : s) ss.insert(i); for (int i : ss) final.push_back(i ^ a0); if (has != -1) final.push_back(a0); sort(final.begin(), final.end()); return final; } vector<int> guess(int n) { a0 = ask(1); vector<int> ans(n); vector<vector<int>> v; v.push_back({}); for (int i = 0; i < n; i++) v.back().push_back(i + 1); v.back() = get_values(v.back()); for (int it = 0; v.size() != n ; it++) { vector<int> left; int cur = 1; for (auto x : v) { for (int i = 0; i < x.size() / 2; i++) left.push_back(cur++); for (int i = x.size() / 2; i < x.size(); i++) cur++; } auto vals = get_values(left); vector<vector<int>> nv; for (auto x : v) { vector<int> l, r; for (int i : x) { if (binary_search(vals.begin(), vals.end(), i)) l.push_back(i); else r.push_back(i); } if (!l.empty()) nv.push_back(l); if (!r.empty()) nv.push_back(r); } v = nv; } for (int i = 0; i < n; i++) { ans[i] = v[i][0]; } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

Xoractive.cpp: In function 'std::vector<int> get_values(std::vector<int>)':
Xoractive.cpp:7:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |  for (int i = 0; i < v.size(); i++) {
      |                  ~~^~~~~~~~~~
Xoractive.cpp: In function 'std::vector<int> guess(int)':
Xoractive.cpp:33:28: warning: comparison of integer expressions of different signedness: 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   33 |  for (int it = 0; v.size() != n ; it++) {
      |                   ~~~~~~~~~^~~~
Xoractive.cpp:37:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |    for (int i = 0; i < x.size() / 2; i++) left.push_back(cur++);
      |                    ~~^~~~~~~~~~~~~~
Xoractive.cpp:38:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |    for (int i = x.size() / 2; i < x.size(); i++) cur++;
      |                               ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...