Pagini recente » Cod sursa (job #1419502) | Cod sursa (job #820255) | Cod sursa (job #1694123) | Cod sursa (job #2872525)
#include <fstream>
#define NMAX 100005
#define MAX_BITS 22
using namespace std;
ifstream cin("xormax.in");
ofstream cout("xormax.out");
int N, tempStart, ans, start = 1, stop = 1;
char bitSet[MAX_BITS];
int v[NMAX], xorSum[NMAX];
struct Trie
{
int freq, start;
Trie *fii[2];
};
Trie *trie = new Trie();
void Add(Trie *pos, char *bits)
{
pos->freq++;
if(*bits == '\0')
{
pos->start = tempStart;
return ;
}
int bit = *bits - '0';
if(pos->fii[bit]==NULL)
pos->fii[bit] = new Trie();
Add(pos->fii[bit], bits + 1);
}
int FindXor(Trie *pos, char *bits)
{
if(*bits == '\0')
return pos->start;
int bit = *bits - '0';
int otherBit = (bit + 1) % 2;
if(pos->fii[otherBit] != NULL)
return FindXor(pos->fii[otherBit], bits)
else
return FindXor(pos->fii[bit], bits + 1);
}
int main()
{
}