class Program { static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); decimal[] size = new decimal[n]; decimal[] code = Array.ConvertAll(Console.ReadLine().Split(' '), num => decimal.Parse(num)); size[0] = code[0] + (code[1] * 4); decimal checkSize = size[0]%2; //0:奇数 1:偶数 -1:どちらでもない for (int i = 1; i < n; i++) { code = Array.ConvertAll(Console.ReadLine().Split(' '), num => decimal.Parse(num)); if (checkSize != -1 && (code[0] + (code[1] * 4)) % 2 == checkSize) { size[i] = code[0] + (code[1] * 4); } else { checkSize = -1; } } if (checkSize == -1) { Console.WriteLine(-1); } else { Array.Sort(size); Array.Reverse(size); decimal minsize = ShortageCheck(size); //if (minsize != -1) //{ // minsize = minsize / 2; //} Console.WriteLine(minsize); } } private static decimal ShortageCheck(decimal[] size) { decimal shortage = 0; for(int i = 1; i < size.Length; i++) { if ((size[0] - size[i])%2 == 0) { shortage += size[0] - size[i]; } //else //{ // shortage = -1; // break; //} } return shortage; } }