#include using namespace std; using ll = long long; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b void vprint(T &V){ for(auto v : V){ cout << v << " "; } cout << endl; } ll dfs(vector A, ll bit){ if(bit<0){ return 0; } vector B; // bit : 0 vector C; // bit : 1 for(ll a : A){ if((a>>bit) & 1){ C.push_back(a); }else{ B.push_back(a); } } // if(B.size()==0 || C.size()==0){ // return dfs(A, b-1); // } // 全部1 -> xは0にすればいい if(B.size()==0){ return dfs(C, bit-1); } else if(C.size()==0){ return dfs(B, bit-1); } else{ // bit = 1にしたとき ll mi0 = dfs(B, bit-1) + (1LL<> N; vector A(N); FOR(i, 0, N){ cin >> A.at(i); } ll ans = dfs(A, 30); p(ans); return 0; }