Submission #480421

# Submission time Handle Problem Language Result Execution time Memory
480421 2021-10-16T07:26:52 Z toloraia Xoractive (IZhO19_xoractive) C++17
100 / 100
12 ms 544 KB
#include<bits/stdc++.h>
#include "interactive.h"
using namespace std;
int b,c,d,e,i,j,ii,jj,zx,xc,f[109];
map <int, int> m;
map <int, int>::iterator tt;
vector <int> v,vv,ans[109];
multiset <int> s,ss;
multiset <int>::iterator it;
set <int> ka;
set <int>::iterator t;
void mul(vector <int> q){
	for(int h=0; h<q.size(); h++){
		if(q[h]==0) continue;
		s.insert(q[h]);
	}
}
vector <int> guess(int n){
	//a=n;
	vector <int> pas;
	/*for(int i=1; i<=n; i++){
		v.push_back(ask(i));
	}*/
	f[0]=ask(1);
	for(i=0; ; i++){
		if((1<<i)>=n) break;
		v.clear();
		for(j=1; j<n; j++){
			if(((1<<i)&j)!=0){
				v.push_back(j+1);
			}
		}
		s.clear();
		mul(get_pairwise_xor(v));
		ss=s;s.clear();
		v.push_back(1);
		mul(get_pairwise_xor(v));
		for(it=ss.begin(); it!=ss.end(); it++){
			s.erase(s.lower_bound((*it)));
		}
		ka.clear();
		for(it=s.begin(); it!=s.end(); it++) ka.insert((*it));
		for(t=ka.begin(); t!=ka.end(); t++){
//			cout<<i<<" "<<((*t)^f[0])<<endl;
			ans[i].push_back((*t));
		}
	}
	pas.push_back(f[0]);
	for(i=1; i<n; i++){
		zx=0;
		m.clear();
		for(j=0; j<10; j++){
			if(((1<<j)&i)!=0) zx++;
			for(jj=0; jj<ans[j].size(); jj++){
				if(((1<<j)&i)!=0) m[ans[j][jj]]++; else m[ans[j][jj]]--;
			}
		}
		for(tt=m.begin(); tt!=m.end(); tt++){
			if((*tt).second==zx){
				pas.push_back(((*tt).first^f[0]));
				break;
			}
		}
	}
  for (int i = 0; i < n; i++)
    for (int j = i+1; j < n; j++)
      assert ((pas[i] != pas[j]));
	return pas;
}

Compilation message

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