#include #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(x) (x).begin(), (x).end() #define ll long long #define ld long double #define INF 1000000000000000000 typedef pair pll; typedef pair pint; int N; bool isOK(ll key, vector A, vector B) { rep(i, N) { A[i] -= key; } ll cnt = 0; rep(i, N) { if (B[i] < A[i]) return false; else cnt += (B[i] - A[i]); } if (cnt == 2 * key) return true; else return false; } int main() { cin.tie(0); ios::sync_with_stdio(false); cin >> N; vector A(N), B(N), P(N); ll suma = 0, sumb = 0; rep(i, N) { cin >> A[i]; suma += A[i]; } rep(i, N) { cin >> B[i]; sumb += B[i]; } if (N == 2) { if (A[0] - B[0] + A[1] - B[1] == 0) cout << abs(A[0] - B[0]) << endl; else cout << -1 << endl; return 0; } if ((suma < sumb) || ((suma - sumb) % (N - 2) != 0)) { cout << -1 << endl; return 0; } ll V = (suma - sumb) / (N - 2); ll cnt = 0; rep(i, N) { P[i] = B[i] - (A[i] - V); } rep(i, N) { if (P[i] % 2 == 1 || P[i] < 0) { cout << -1 << endl; return 0; }; cnt += P[i]; } if (cnt != 2 * V) cout << -1 << endl; else cout << V << endl; return 0; }