Submission #519230

# Submission time Handle Problem Language Result Execution time Memory
519230 2022-01-26T04:16:55 Z Ai7081 Xoractive (IZhO19_xoractive) C++17
0 / 100
2 ms 328 KB
#include <bits/stdc++.h>
using namespace std;

int ask(int i);

vector<int> get_pairwise_xor(vector<int> pos);

vector<int> guess(int n) {
    vector<int> ret(n);
    ret[0] = ask(1);

    vector<int> q;
    vector<vector<int>> bit(7);
    for (int i=0; i<7; i++) {
        q.clear();
        for (int j=1; j<=n; j++) {
            if ((j>>i)%2 && j>1) q.push_back(j);
        }
        if (q.empty()) continue;
        vector<int> res1, res2;
        res1 = get_pairwise_xor(q);
        q.push_back(1);
        res2 = get_pairwise_xor(q);

        int ii=0, jj=1;
        vector<int> tmp;
        while (ii<res1.size() && jj<res2.size()) {
            if (res1[ii] > res2[jj]) {
                tmp.push_back(res2[jj]);
                jj++;
            }
            else if (res1[ii] == res2[jj]) {
                ii++;
                jj++;
            }
        }
        for (int j=0; j<tmp.size(); j+=2) bit[i].push_back(tmp[j] ^ ret[0]);
    }

    vector<pair<int, int>> v;
    for (int i=0; i<7; i++) {
        for (auto x : bit[i]) {
            bool ok = false;
            for (int j=0; j<v.size(); j++) {
                if (x == v[j].first) {
                    v[j].second += (1<<i);
                    ok = true;
                    break;
                }
            }
            if (!ok) {
                v.push_back({x, (1<<i)});
            }
        }
    }
    for (auto [x, idx] : v) ret[idx-1] = x;
    return ret;
}

Compilation message

Xoractive.cpp: In function 'std::vector<int> guess(int)':
Xoractive.cpp:27:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |         while (ii<res1.size() && jj<res2.size()) {
      |                ~~^~~~~~~~~~~~
Xoractive.cpp:27:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |         while (ii<res1.size() && jj<res2.size()) {
      |                                  ~~^~~~~~~~~~~~
Xoractive.cpp:37:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |         for (int j=0; j<tmp.size(); j+=2) bit[i].push_back(tmp[j] ^ ret[0]);
      |                       ~^~~~~~~~~~~
Xoractive.cpp:44:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |             for (int j=0; j<v.size(); j++) {
      |                           ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 200 KB Output is not correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 328 KB Output is correct
2 Correct 2 ms 328 KB Output is correct
3 Incorrect 2 ms 328 KB Output is not correct
4 Halted 0 ms 0 KB -