Paste Search Dynamic
Recent pastes
ans
  1. #include<bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. const int inf=1e9+7;
  5. const int log=20;
  6. const int N=(1<<LOG);
  7. int f[2][N],n[2],num[N];
  8. signed main(){
  9.         ios::sync_with_stdio(0);
  10.         cin.tie(0);
  11.         int i,j,k,l;
  12.         cin>>n[0]>>n[1];
  13.         for(i=0;i<2;i++){
  14.                 for(j=0;j<n[i];j++){
  15.                         cin>>k;
  16.                         f[i][k]++;
  17.                         k^=(N-1);
  18.                 }
  19.                 for(j=0;j<LOG;j++){
  20.                         for(k=0;k<N;k++){
  21.                                 if(!((k>>j)&1)){
  22.                                         f[i][k^(1<<j)]+=f[i][k];
  23.                                 }
  24.                         }
  25.                 }
  26.                 for(k=0;k<N;k++){
  27.                         f[i][k]=n[i]-f[i][k];
  28.                 }
  29.                 for(k=0;k<N;k++){
  30.                         if(k<(k^(N-1))){
  31.                                 swap(f[i][k],f[i][k^(N-1)]);
  32.                         }
  33.                 }
  34.         }
  35.         int ans=0;
  36.         for(i=19;i>-1;i--){
  37.                 int max1=inf;
  38.                 for(j=0;j<2;j++){
  39.                         for(k=0;k<N;k++){
  40.                                 if((k>>i)&1){
  41.                                 //      if(i==2&&max1>f[j][k]-num[k]){
  42.                                 //              cout<<k<<' '<<f[j][k]<<' '<<num[k]<<endl;
  43.                                 //      }
  44.                                         max1=min(max1,f[j][k]-num[k]);
  45.                                 }
  46.                         }
  47.                 }
  48.                 ans+=max1*(1<<i);
  49.                 for(k=0;k<N;k++){
  50.                         if((k>>i)&1){
  51.                                 num[k]+=max1;
  52.                         }
  53.                 }
  54.         }
  55.         cout<<ans;
  56. }
  57.  
Parsed in 0.007 seconds