1 solutions

  • 0
    @ 2025-12-6 18:48:39
    #include<bits/stdc++.h>
    using namespace std;
    int n,mx,trie[10000010][2],id,a[100010];
    void add(int x)
    {
    	int p=0;
    	for(int i=31;i>=0;i--)
    	{
    		int x1=x>>i&1;
    		if(!trie[p][x1])
    		{
    			trie[p][x1]=++id; 
    		}
    		p=trie[p][x1];
    	}
    }
    int answ(int x)
    {
    	int p=0,cnt=0;
    	for(int i=31;i>=0;i--)
    	{
    		int x1=x>>i&1;
    		if(trie[p][!x1])
    		{
    			p=trie[p][!x1];
    			cnt+=1<<i;
    		}
    		else
    		{
    			p=trie[p][x1];
    		}
    	}
    	return cnt;
    }
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		add(a[i]);
    	}
    	for(int i=1;i<=n;i++)
    	{
    		mx=max(mx,answ(a[i]));
    	}
    	cout<<mx;
        return 0;
    }
    
    • 1

    Information

    ID
    311
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    # Submissions
    5
    Accepted
    1
    Uploaded By