답안 #868710

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
868710 2023-11-01T17:06:30 Z alexdd Xoractive (IZhO19_xoractive) C++17
88 / 100
5 ms 1112 KB
#include "interactive.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> ans;
int cate,maxd;
int le[405];
int ri[405];
int niv[405];
vector<int> aux[20];
vector<int> rez[20];
map<int,int> tori[20];
void divide_init(int st, int dr, int depth, int nod)
{
    cate=max(cate,nod);
    maxd=max(maxd,depth);
    le[nod]=st;
    ri[nod]=dr;
    niv[nod]=depth;
    if(st==dr)
        return;
    int mij=(st+dr)/2;
    divide_init(st,mij,depth+1,nod*2);
    divide_init(mij+1,dr,depth+1,nod*2+1);
}
void divide_final(int nod, vector<int> vals)
{
    /*cout<<nod<<"   "<<le[nod]<<" "<<ri[nod]<<": ";
    for(auto x:vals)
        cout<<x<<" ";
    cout<<"\n";*/
    if(le[nod]==ri[nod])
    {
        ans[le[nod]-1] = vals[0]^ans[0];
        return;
    }
    vector<int> vals_le;
    vector<int> vals_ri;
    for(auto x:vals)
    {
        if(tori[niv[nod]+1][x]>0)
            vals_ri.push_back(x);
        else
            vals_le.push_back(x);
    }
    divide_final(nod*2,vals_le);
    divide_final(nod*2+1,vals_ri);
}
vector<int> guess(int n)
{
    ans.resize(n);
	ans[0]=ask(1);
	cate=1;
	maxd=0;
    divide_init(2,n,1,1);
    for(int i=1;i<=cate;i++)
    {
        if(i%2==1)
        {
            for(int j=le[i];j<=ri[i];j++)
                aux[niv[i]].push_back(j);
        }
    }
    vector<int> cv0;
    vector<int> cv1;
    for(int i=1;i<=maxd;i++)
    {
        cv0 = get_pairwise_xor(aux[i]);
        for(auto x:cv0)
            tori[i][x]--;
        aux[i].push_back(1);
        cv1 = get_pairwise_xor(aux[i]);
        for(auto x:cv1)
            tori[i][x]++;
        rez[i].clear();
        for(auto it:tori[i])
            for(int j=0;j<it.second/2;j++)
                rez[i].push_back(it.first);
    }
    divide_final(1,rez[1]);
	return ans;
}
# 결과 실행 시간 메모리 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 600 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 5 ms 856 KB Output is partially correct
2 Partially correct 5 ms 856 KB Output is partially correct
3 Partially correct 3 ms 600 KB Output is partially correct
4 Partially correct 5 ms 804 KB Output is partially correct
5 Partially correct 5 ms 856 KB Output is partially correct
6 Partially correct 4 ms 856 KB Output is partially correct
7 Partially correct 3 ms 600 KB Output is partially correct
8 Partially correct 4 ms 856 KB Output is partially correct
9 Partially correct 5 ms 1108 KB Output is partially correct
10 Partially correct 4 ms 856 KB Output is partially correct
11 Partially correct 3 ms 600 KB Output is partially correct
12 Partially correct 4 ms 856 KB Output is partially correct
13 Partially correct 4 ms 856 KB Output is partially correct
14 Partially correct 5 ms 856 KB Output is partially correct
15 Partially correct 3 ms 600 KB Output is partially correct
16 Partially correct 5 ms 836 KB Output is partially correct
17 Partially correct 5 ms 796 KB Output is partially correct
18 Partially correct 4 ms 856 KB Output is partially correct
19 Partially correct 2 ms 600 KB Output is partially correct
20 Partially correct 5 ms 856 KB Output is partially correct
21 Partially correct 5 ms 856 KB Output is partially correct
22 Partially correct 5 ms 856 KB Output is partially correct
23 Partially correct 3 ms 600 KB Output is partially correct
24 Partially correct 5 ms 856 KB Output is partially correct
25 Partially correct 4 ms 800 KB Output is partially correct
26 Partially correct 4 ms 856 KB Output is partially correct
27 Partially correct 3 ms 412 KB Output is partially correct
28 Partially correct 4 ms 856 KB Output is partially correct
29 Partially correct 5 ms 856 KB Output is partially correct
30 Partially correct 4 ms 856 KB Output is partially correct
31 Partially correct 3 ms 544 KB Output is partially correct
32 Partially correct 5 ms 856 KB Output is partially correct
33 Partially correct 5 ms 956 KB Output is partially correct
34 Partially correct 5 ms 856 KB Output is partially correct
35 Partially correct 3 ms 600 KB Output is partially correct
36 Partially correct 5 ms 856 KB Output is partially correct
37 Partially correct 5 ms 800 KB Output is partially correct
38 Partially correct 4 ms 856 KB Output is partially correct
39 Partially correct 3 ms 600 KB Output is partially correct
40 Partially correct 5 ms 856 KB Output is partially correct
41 Partially correct 4 ms 856 KB Output is partially correct
42 Partially correct 5 ms 856 KB Output is partially correct
43 Partially correct 3 ms 600 KB Output is partially correct
44 Partially correct 4 ms 984 KB Output is partially correct
45 Partially correct 5 ms 820 KB Output is partially correct
46 Partially correct 5 ms 856 KB Output is partially correct
47 Partially correct 3 ms 612 KB Output is partially correct
48 Partially correct 4 ms 856 KB Output is partially correct
49 Partially correct 5 ms 856 KB Output is partially correct
50 Partially correct 4 ms 856 KB Output is partially correct
51 Partially correct 2 ms 600 KB Output is partially correct
52 Partially correct 4 ms 856 KB Output is partially correct
53 Partially correct 5 ms 1112 KB Output is partially correct
54 Partially correct 5 ms 856 KB Output is partially correct
55 Partially correct 2 ms 600 KB Output is partially correct
56 Partially correct 5 ms 856 KB Output is partially correct
57 Partially correct 5 ms 856 KB Output is partially correct
58 Partially correct 4 ms 856 KB Output is partially correct
59 Partially correct 3 ms 624 KB Output is partially correct
60 Partially correct 5 ms 856 KB Output is partially correct
61 Partially correct 4 ms 856 KB Output is partially correct
62 Partially correct 5 ms 856 KB Output is partially correct
63 Partially correct 3 ms 600 KB Output is partially correct
64 Partially correct 4 ms 856 KB Output is partially correct
65 Partially correct 5 ms 856 KB Output is partially correct
66 Partially correct 4 ms 856 KB Output is partially correct
67 Partially correct 3 ms 600 KB Output is partially correct
68 Partially correct 5 ms 856 KB Output is partially correct
69 Partially correct 5 ms 856 KB Output is partially correct
70 Partially correct 5 ms 856 KB Output is partially correct
71 Partially correct 3 ms 600 KB Output is partially correct
72 Partially correct 5 ms 856 KB Output is partially correct
73 Partially correct 5 ms 856 KB Output is partially correct
74 Partially correct 4 ms 856 KB Output is partially correct
75 Partially correct 3 ms 600 KB Output is partially correct
76 Partially correct 5 ms 856 KB Output is partially correct
77 Partially correct 4 ms 856 KB Output is partially correct
78 Partially correct 5 ms 856 KB Output is partially correct
79 Partially correct 3 ms 852 KB Output is partially correct
80 Partially correct 5 ms 884 KB Output is partially correct
81 Partially correct 5 ms 856 KB Output is partially correct
82 Partially correct 5 ms 856 KB Output is partially correct
83 Partially correct 3 ms 600 KB Output is partially correct
84 Partially correct 5 ms 860 KB Output is partially correct
85 Partially correct 5 ms 864 KB Output is partially correct
86 Partially correct 5 ms 864 KB Output is partially correct
87 Partially correct 3 ms 608 KB Output is partially correct
88 Partially correct 5 ms 820 KB Output is partially correct
89 Partially correct 4 ms 864 KB Output is partially correct
90 Partially correct 4 ms 864 KB Output is partially correct
91 Partially correct 3 ms 612 KB Output is partially correct
92 Partially correct 4 ms 868 KB Output is partially correct
93 Partially correct 5 ms 868 KB Output is partially correct
94 Partially correct 4 ms 868 KB Output is partially correct
95 Partially correct 2 ms 612 KB Output is partially correct
96 Partially correct 5 ms 952 KB Output is partially correct
97 Partially correct 4 ms 868 KB Output is partially correct
98 Partially correct 4 ms 812 KB Output is partially correct
99 Partially correct 3 ms 612 KB Output is partially correct
100 Partially correct 5 ms 832 KB Output is partially correct