#include #include using namespace std; int N; int a[100000]; // a[l, r) の第 i ビット以下の解 int f(int i, int l, int r) { if (i == -1) return 0; int j; for (j = l; j < r; j++) if (a[j] & (1 << i)) break; if (j == l || j == r) return f(i - 1, l, r); int x = f(i - 1, l, j); int y = f(i - 1, j, r); return min(x, y) + (1 << i); } int main() { cin >> N; for (int i = 0; i < N; i++) cin >> a[i]; sort(a, a + N); cout << f(29, 0, N) << endl; }