3 条题解

  • 0
    @ 2026-4-5 20:33:39
    #include<iostream>
    #include<cmath>
    using namespace std;
    int a[1000005];
    int main(){
    	int n,ans;
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    		ans^=a[i];
    	}
    	int pos=0;
    	for(int i=63;i>=0;i--){
    		if(ans&(1<<i))
    			pos=(1<<i);
    		continue;
    	}
    	long long ans1=0,ans2=0;
    	for(int i=0;i<n;i++){
    		if(a[i]&pos)
    			ans1^=a[i];
    		else
    			ans2^=a[i];
    	}
    	if(ans1>ans2)
    		swap(ans1,ans2);
    	cout<<ans1<<" "<<ans2;
    	return 0;
    }

    信息

    ID
    1223
    时间
    200ms
    内存
    64MiB
    难度
    8
    标签
    递交数
    400
    已通过
    75
    上传者