Submission #969942

# Submission time Handle Problem Language Result Execution time Memory
969942 2024-04-26T00:09:04 Z ThegeekKnight16 Xoractive (IZhO19_xoractive) C++17
88 / 100
4 ms 600 KB
#include <bits/stdc++.h>
#include "interactive.h"
using namespace std;

vector<int> intervalXor(int id, vector<int> v, int valId)
{
	// cerr << "v: "; for (auto x : v) cerr << x << " "; cerr << '\n';
	if (v.empty()) return v;
	v.push_back(id);
	vector<int> r1 = get_pairwise_xor(v);
	v.pop_back();
	vector<int> r2 = get_pairwise_xor(v);
	vector<int> resp;
	int id2 = 0;
	for (int i = 0; i < r1.size(); i++)
	{
		if (r2[id2] == r1[i]) {id2++; continue;}
		resp.push_back(r1[i]);
	}
	if (resp[0] == 0) resp.erase(resp.begin());
	vector<int> realResp(1, resp[0]);
	for (int i = 1; i < resp.size(); i++) if (resp[i] != resp[i-1]) realResp.push_back(resp[i]);
	resp = realResp;
	for (auto &x : resp) x ^= valId;
	sort(resp.begin(), resp.end());
	// cerr << "resp: "; for (auto x : resp) cerr << x << " "; cerr << '\n';
	return resp;
}

vector<int> guess(int n) 
{
	// cerr << "BONGA" << '\n';
	vector<int> ans(n);
	ans[0] = ask(1);
	vector<int> ids(n-1); iota(ids.begin(), ids.end(), 2);
	vector<int> nums = intervalXor(1, ids, ans[0]);
	vector<int> pos(n-1);
	for (int k = 6; k >= 0; k--)
	{
		ids.clear();
		for (int i = 2; i <= n; i++) 
			if (i & (1 << k))
				ids.push_back(i);
		vector<int> aux = intervalXor(1, ids, ans[0]);
		if (aux.empty()) continue;
		int idAux = 0;
		for (int i = 0; i < nums.size() && idAux < aux.size(); i++)
		{
			if (aux[idAux] == nums[i]) pos[i] |= (1 << k), idAux++;
		}
	}
	// cerr << "pos: "; for (auto x : pos) cerr << x << " "; cerr << '\n';
	for (int i = 0; i < pos.size(); i++) ans[pos[i]-1] = nums[i];
	// cerr << "n: " << n << ", ans: "; for (auto x : ans) cerr << x << " "; cerr << '\n';
	return ans;
}

Compilation message

Xoractive.cpp: In function 'std::vector<int> intervalXor(int, std::vector<int>, int)':
Xoractive.cpp:15:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for (int i = 0; i < r1.size(); i++)
      |                  ~~^~~~~~~~~~~
Xoractive.cpp:22:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |  for (int i = 1; i < resp.size(); i++) if (resp[i] != resp[i-1]) realResp.push_back(resp[i]);
      |                  ~~^~~~~~~~~~~~~
Xoractive.cpp: In function 'std::vector<int> guess(int)':
Xoractive.cpp:47:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   for (int i = 0; i < nums.size() && idAux < aux.size(); i++)
      |                   ~~^~~~~~~~~~~~~
Xoractive.cpp:47:44: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   for (int i = 0; i < nums.size() && idAux < aux.size(); i++)
      |                                      ~~~~~~^~~~~~~~~~~~
Xoractive.cpp:53:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |  for (int i = 0; i < pos.size(); i++) ans[pos[i]-1] = nums[i];
      |                  ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 344 KB Output is partially correct
2 Partially correct 3 ms 344 KB Output is partially correct
3 Partially correct 2 ms 344 KB Output is partially correct
4 Partially correct 3 ms 344 KB Output is partially correct
5 Partially correct 3 ms 344 KB Output is partially correct
6 Partially correct 3 ms 536 KB Output is partially correct
7 Partially correct 2 ms 344 KB Output is partially correct
8 Partially correct 3 ms 344 KB Output is partially correct
9 Partially correct 3 ms 572 KB Output is partially correct
10 Partially correct 3 ms 344 KB Output is partially correct
11 Partially correct 2 ms 344 KB Output is partially correct
12 Partially correct 3 ms 540 KB Output is partially correct
13 Partially correct 3 ms 344 KB Output is partially correct
14 Partially correct 3 ms 344 KB Output is partially correct
15 Partially correct 2 ms 344 KB Output is partially correct
16 Partially correct 3 ms 344 KB Output is partially correct
17 Partially correct 3 ms 344 KB Output is partially correct
18 Partially correct 3 ms 344 KB Output is partially correct
19 Partially correct 2 ms 344 KB Output is partially correct
20 Partially correct 3 ms 344 KB Output is partially correct
21 Partially correct 3 ms 344 KB Output is partially correct
22 Partially correct 3 ms 344 KB Output is partially correct
23 Partially correct 2 ms 344 KB Output is partially correct
24 Partially correct 3 ms 344 KB Output is partially correct
25 Partially correct 2 ms 344 KB Output is partially correct
26 Partially correct 2 ms 596 KB Output is partially correct
27 Partially correct 2 ms 344 KB Output is partially correct
28 Partially correct 3 ms 344 KB Output is partially correct
29 Partially correct 3 ms 344 KB Output is partially correct
30 Partially correct 3 ms 344 KB Output is partially correct
31 Partially correct 2 ms 344 KB Output is partially correct
32 Partially correct 3 ms 344 KB Output is partially correct
33 Partially correct 3 ms 344 KB Output is partially correct
34 Partially correct 3 ms 344 KB Output is partially correct
35 Partially correct 2 ms 344 KB Output is partially correct
36 Partially correct 3 ms 344 KB Output is partially correct
37 Partially correct 3 ms 344 KB Output is partially correct
38 Partially correct 2 ms 344 KB Output is partially correct
39 Partially correct 2 ms 344 KB Output is partially correct
40 Partially correct 3 ms 344 KB Output is partially correct
41 Partially correct 3 ms 344 KB Output is partially correct
42 Partially correct 3 ms 344 KB Output is partially correct
43 Partially correct 2 ms 596 KB Output is partially correct
44 Partially correct 2 ms 344 KB Output is partially correct
45 Partially correct 3 ms 344 KB Output is partially correct
46 Partially correct 3 ms 600 KB Output is partially correct
47 Partially correct 2 ms 344 KB Output is partially correct
48 Partially correct 3 ms 344 KB Output is partially correct
49 Partially correct 3 ms 344 KB Output is partially correct
50 Partially correct 3 ms 344 KB Output is partially correct
51 Partially correct 3 ms 344 KB Output is partially correct
52 Partially correct 2 ms 344 KB Output is partially correct
53 Partially correct 3 ms 344 KB Output is partially correct
54 Partially correct 3 ms 344 KB Output is partially correct
55 Partially correct 2 ms 344 KB Output is partially correct
56 Partially correct 3 ms 344 KB Output is partially correct
57 Partially correct 3 ms 344 KB Output is partially correct
58 Partially correct 3 ms 344 KB Output is partially correct
59 Partially correct 2 ms 344 KB Output is partially correct
60 Partially correct 3 ms 344 KB Output is partially correct
61 Partially correct 3 ms 344 KB Output is partially correct
62 Partially correct 4 ms 344 KB Output is partially correct
63 Partially correct 2 ms 344 KB Output is partially correct
64 Partially correct 3 ms 344 KB Output is partially correct
65 Partially correct 3 ms 536 KB Output is partially correct
66 Partially correct 3 ms 344 KB Output is partially correct
67 Partially correct 2 ms 344 KB Output is partially correct
68 Partially correct 3 ms 344 KB Output is partially correct
69 Partially correct 3 ms 344 KB Output is partially correct
70 Partially correct 3 ms 344 KB Output is partially correct
71 Partially correct 2 ms 344 KB Output is partially correct
72 Partially correct 3 ms 532 KB Output is partially correct
73 Partially correct 3 ms 344 KB Output is partially correct
74 Partially correct 3 ms 344 KB Output is partially correct
75 Partially correct 2 ms 344 KB Output is partially correct
76 Partially correct 3 ms 344 KB Output is partially correct
77 Partially correct 3 ms 344 KB Output is partially correct
78 Partially correct 3 ms 344 KB Output is partially correct
79 Partially correct 2 ms 344 KB Output is partially correct
80 Partially correct 2 ms 576 KB Output is partially correct
81 Partially correct 3 ms 344 KB Output is partially correct
82 Partially correct 3 ms 344 KB Output is partially correct
83 Partially correct 2 ms 344 KB Output is partially correct
84 Partially correct 3 ms 344 KB Output is partially correct
85 Partially correct 3 ms 344 KB Output is partially correct
86 Partially correct 3 ms 352 KB Output is partially correct
87 Partially correct 2 ms 344 KB Output is partially correct
88 Partially correct 3 ms 348 KB Output is partially correct
89 Partially correct 3 ms 344 KB Output is partially correct
90 Partially correct 2 ms 348 KB Output is partially correct
91 Partially correct 2 ms 348 KB Output is partially correct
92 Partially correct 3 ms 344 KB Output is partially correct
93 Partially correct 3 ms 348 KB Output is partially correct
94 Partially correct 3 ms 344 KB Output is partially correct
95 Partially correct 2 ms 344 KB Output is partially correct
96 Partially correct 3 ms 344 KB Output is partially correct
97 Partially correct 3 ms 344 KB Output is partially correct
98 Partially correct 3 ms 340 KB Output is partially correct
99 Partially correct 2 ms 344 KB Output is partially correct
100 Partially correct 3 ms 344 KB Output is partially correct