import collections import re text = open(0).read() grid = {} match = {} for x, y, a, b in [[int(n) for n in re.findall(r'-?\d+', ln)] for ln in text.splitlines()]: match[complex(x, y)] = complex(a, b) goal = 2000000 bop = 4000000 seen = set() count = collections.Counter() for aa, bb in match.items(): diff = bb - aa reach = int(abs(diff.real) + abs(diff.imag)) dist = int(abs(aa.imag - goal)) if reach > dist: df = reach - dist seen |= set(range(int(aa.real - df), int(aa.real + df))) for rot in [1j ** i for i in range(4)]: for dx in range(reach): dy = reach - dx edgy = aa + complex(dx, dy) * rot for dot in [rot, rot * 1j]: bip = edgy + dot if 0 <= bip.real <= bop and 0 <= bip.imag <= bop: count[bip] += 1 print(len(seen)) fin = count.most_common()[0][0] print(fin, int(fin.real * bop + fin.imag))