Submission #333355

# Submission time Handle Problem Language Result Execution time Memory
333355 2020-12-05T17:06:19 Z emaborevkovic Xoractive (IZhO19_xoractive) C++17
100 / 100
9 ms 748 KB
#include <bits/stdc++.h>
#include <interactive.h>

using namespace std;

typedef long long ll;
#define pb push_back
#define mp make_pair
#define ff first
#define ss second

const int N = 105;
vector <int> v[N];
vector <int> c[N];
vector <pair <int, int> > s;
int ima[N];
map <int, int> m;

vector <int> guess(int n) {
	memset(ima, 0, sizeof ima);
	vector <int> res(n, 0);
	for (int i=0;i<n;i++) {
		v[i].clear();
		c[i].clear();
	}
	for (int i=1;i<n;i++) {
		int sada = i;
		for (int j=7;j>=0;j--) {
			if (sada >= 1<<j) {
				sada -= 1<<j;
				v[j].pb(i+1);
				ima[i]++;
			}
		}
		s.pb(mp(ima[i], i));
	}
	int prvi = ask(1);
	for (int i=0;i<8;i++) {
		if (v[i].size() == 0) continue;
		vector <int> a, b;
		a = get_pairwise_xor(v[i]);
		v[i].pb(1); 
		b = get_pairwise_xor(v[i]);
		for (auto x : a) m[x]++;
		for (auto x : b) m[x]--;
		for (auto x : b) {
			if (m[x] < 0) c[i].pb(x);
			m[x] = 0;
		}
		for (int j=0;j<c[i].size();j++) {
			c[i][j] ^= prvi;
		}
	}
	sort(s.begin(), s.end());
	reverse(s.begin(), s.end());
	for (auto x : s) {
		int sada = x.ss;
		int curr = 0;
		for (int i=7;i>=0;i--) {
			if (sada >= 1<<i) {
				sada -= 1<<i;
				for (int j=1;j<c[i].size();j++) {
					if (c[i][j] == -1) continue;
					m[c[i][j]]++;
					if (m[c[i][j]] == ima[x.ss]) curr = c[i][j];
				}
			}
		}
		sada = x.ss;
		for (int i=7;i>=0;i--) {
			if (sada >= 1<<i) {
				sada -= 1<<i;
				for (int j=1;j<c[i].size();j++) {
					m[c[i][j]] = 0;
					if (c[i][j] == curr) c[i][j] = -1;
				}
			}
		}
		res[x.ss] = curr;
	}
	res[0] = prvi;
	return res;
}

Compilation message

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