#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; #define _CRT_SECURE_NO_WARNINGS #define REP(i, n) for(int i=0; i<(n); i++) #define FOR(i, m, n) for(int i=(m);i<(n);i++) #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(),(x).end() #define SORT(x) sort((x).begin(),(x).end()) #define REVE(x) reverse((x).begin(),(x).end()) #define MP make_pair #define PB push_back typedef vector VI; typedef vector VS; typedef vector> VVI; typedef pair PII; typedef long long LL; int main() { int n; cin >> n; VI a(n), b(n), c(n); REP(i, n)cin >> a[i] >> b[i]; REP(i, n) { c[i] = a[i] + b[i] * 4; } SORT(c); bool flag = true; REP(i, n - 1)if ((c[i + 1] - c[i]) % 2 == 1)flag = false; if (!flag) { puts("-1"); } else { int cnt = 0; REP(i, n - 1) { cnt += (c[n - 1] - c[i]) / 2; } cout << cnt << endl; } }