Taki urok tego portalu. Mnie też to zawsze denerwowało, nie raz spędziłem długie godziny walcząc z dziwnymi błędami. Trzeba się do tego przyzwyczaić i tyle.
Swoją drogą jak testowałeś swój program? Odpaliłem Twój kod (tak, mam podgląd) na ideone i też dostaje błędy.
A teraz konkrety:
Linijka, którą podałeś działa, ale należy ją odpalić tylko raz, na początku programu (zobacz, że ona podmienia domyślny input, z którego potem pobierasz dane).
Więc odpalasz raz
input=(io.BytesIO(os.read(0, os.fstat(0).st_size)).readline)
A potem korzystasz tylko z input
jakby nie było żadnego fast i/o:
n = int(input())
x,y=[int(s) for s in input().split()]
Nie sprawdzałem, czy Twój kod przechodzi w takiej formie, ale przynajmniej działa na ideone (dla testu przykładowego).