Submission #367393

# Submission time Handle Problem Language Result Execution time Memory
367393 2021-02-17T06:55:46 Z fishy15 Xoractive (IZhO19_xoractive) C++14
100 / 100
6 ms 492 KB
#include <iostream>
#include <iomanip>
#include <fstream>
#include <vector>
#include <array>
#include <algorithm>
#include <utility>
#include <map>
#include <queue>
#include <set>
#include <cmath>
#include <cstdio>
#include <cstring>

#include "interactive.h"

#define ll long long
#define ld long double
#define eps 1e-8
#define MOD 1000000007

#define INF 0x3f3f3f3f
#define INFLL 0x3f3f3f3f3f3f3f3f

// change if necessary
#define MAXN 1000000

using namespace std;

vector<int> guess(int n) {
    int one = ask(1);

    map<int, int> ans_m;
    for (int j = 0; j < 7; j++) {
        vector<int> cur;
        for (int i = 1; i < n; i++) {
            if ((i >> j) & 1) {
                cur.push_back(i + 1);
            }
        }

        if (cur.empty()) continue;
        auto set1 = get_pairwise_xor(cur);
        cur.push_back(1);
        auto set2 = get_pairwise_xor(cur);

        map<int, int> cnt;
        for (int i : set2) {
            if (i) {
                cnt[i ^ one]++;
            }
        }
        for (int i : set1) {
            if (i) {
                cnt[i ^ one]--;
            }
        }

        for (auto p : cnt) {
            if (p.second) {
                ans_m[p.first] += (1 << j);
            }
        }
    }

    vector<int> ans(n);
    ans[0] = one;
    for (auto p : ans_m) {
        ans[p.second] = p.first;
    }

    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 364 KB Output is correct
2 Correct 4 ms 364 KB Output is correct
3 Correct 2 ms 364 KB Output is correct
4 Correct 5 ms 364 KB Output is correct
5 Correct 4 ms 364 KB Output is correct
6 Correct 5 ms 364 KB Output is correct
7 Correct 3 ms 364 KB Output is correct
8 Correct 4 ms 364 KB Output is correct
9 Correct 5 ms 364 KB Output is correct
10 Correct 4 ms 364 KB Output is correct
11 Correct 3 ms 384 KB Output is correct
12 Correct 4 ms 364 KB Output is correct
13 Correct 4 ms 364 KB Output is correct
14 Correct 5 ms 364 KB Output is correct
15 Correct 2 ms 364 KB Output is correct
16 Correct 5 ms 364 KB Output is correct
17 Correct 5 ms 492 KB Output is correct
18 Correct 4 ms 364 KB Output is correct
19 Correct 2 ms 364 KB Output is correct
20 Correct 5 ms 492 KB Output is correct
21 Correct 5 ms 364 KB Output is correct
22 Correct 4 ms 364 KB Output is correct
23 Correct 3 ms 364 KB Output is correct
24 Correct 5 ms 364 KB Output is correct
25 Correct 5 ms 364 KB Output is correct
26 Correct 4 ms 364 KB Output is correct
27 Correct 3 ms 364 KB Output is correct
28 Correct 4 ms 364 KB Output is correct
29 Correct 5 ms 364 KB Output is correct
30 Correct 4 ms 364 KB Output is correct
31 Correct 3 ms 364 KB Output is correct
32 Correct 5 ms 364 KB Output is correct
33 Correct 5 ms 364 KB Output is correct
34 Correct 4 ms 364 KB Output is correct
35 Correct 3 ms 364 KB Output is correct
36 Correct 5 ms 364 KB Output is correct
37 Correct 4 ms 364 KB Output is correct
38 Correct 4 ms 364 KB Output is correct
39 Correct 3 ms 364 KB Output is correct
40 Correct 4 ms 364 KB Output is correct
41 Correct 4 ms 364 KB Output is correct
42 Correct 5 ms 364 KB Output is correct
43 Correct 2 ms 364 KB Output is correct
44 Correct 4 ms 364 KB Output is correct
45 Correct 4 ms 364 KB Output is correct
46 Correct 4 ms 364 KB Output is correct
47 Correct 3 ms 364 KB Output is correct
48 Correct 4 ms 364 KB Output is correct
49 Correct 5 ms 364 KB Output is correct
50 Correct 5 ms 364 KB Output is correct
51 Correct 3 ms 364 KB Output is correct
52 Correct 5 ms 364 KB Output is correct
53 Correct 4 ms 364 KB Output is correct
54 Correct 5 ms 364 KB Output is correct
55 Correct 2 ms 364 KB Output is correct
56 Correct 5 ms 364 KB Output is correct
57 Correct 5 ms 364 KB Output is correct
58 Correct 6 ms 364 KB Output is correct
59 Correct 3 ms 364 KB Output is correct
60 Correct 5 ms 364 KB Output is correct
61 Correct 4 ms 364 KB Output is correct
62 Correct 5 ms 364 KB Output is correct
63 Correct 2 ms 364 KB Output is correct
64 Correct 4 ms 364 KB Output is correct
65 Correct 5 ms 364 KB Output is correct
66 Correct 4 ms 364 KB Output is correct
67 Correct 3 ms 364 KB Output is correct
68 Correct 4 ms 364 KB Output is correct
69 Correct 5 ms 364 KB Output is correct
70 Correct 4 ms 364 KB Output is correct
71 Correct 3 ms 364 KB Output is correct
72 Correct 4 ms 364 KB Output is correct
73 Correct 5 ms 364 KB Output is correct
74 Correct 4 ms 364 KB Output is correct
75 Correct 3 ms 384 KB Output is correct
76 Correct 5 ms 364 KB Output is correct
77 Correct 4 ms 364 KB Output is correct
78 Correct 5 ms 364 KB Output is correct
79 Correct 3 ms 364 KB Output is correct
80 Correct 4 ms 364 KB Output is correct
81 Correct 4 ms 364 KB Output is correct
82 Correct 5 ms 364 KB Output is correct
83 Correct 2 ms 364 KB Output is correct
84 Correct 5 ms 364 KB Output is correct
85 Correct 5 ms 384 KB Output is correct
86 Correct 5 ms 364 KB Output is correct
87 Correct 3 ms 364 KB Output is correct
88 Correct 5 ms 364 KB Output is correct
89 Correct 4 ms 364 KB Output is correct
90 Correct 4 ms 364 KB Output is correct
91 Correct 3 ms 364 KB Output is correct
92 Correct 4 ms 364 KB Output is correct
93 Correct 5 ms 364 KB Output is correct
94 Correct 5 ms 364 KB Output is correct
95 Correct 3 ms 364 KB Output is correct
96 Correct 4 ms 364 KB Output is correct
97 Correct 4 ms 364 KB Output is correct
98 Correct 4 ms 364 KB Output is correct
99 Correct 3 ms 364 KB Output is correct
100 Correct 4 ms 364 KB Output is correct