#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; constexpr int INF = 1001001001; constexpr int mod = 1000000007; // constexpr int mod = 998244353; template inline bool chmax(T& x, T y){ if(x < y){ x = y; return true; } return false; } template inline bool chmin(T& x, T y){ if(x > y){ x = y; return true; } return false; } int n, a[100005]; int func(int k, int l, int r){ if(k == -1) return 0; int m = r; for(int i = l; i < r; ++i){ if(a[i] >> k & 1) { m = i; break; } } int res = INF; if(l < m) chmin(res, func(k - 1, l, m)); if(m < r) chmin(res, func(k - 1, m, r)); if(l < m && m < r) res += 1 << k; return res; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for(int i = 0; i < n; ++i) cin >> a[i]; sort(a, a + n); cout << func(30, 0, n) << endl; return 0; }