#!/usr/bin/python3 # Formát vstupu: # - na prvním řádku číslo D (šířka asfaltovacího vozu) a číslo N (počet bodů) # - na dalších N řádcích souřadnice bodů (dvojice čísel x y... x je východozápadní, y je severojižní) # 1. Načtení vstupu D, N = map(int, input().split()) body = [] for i in range(N): x, y = input().split() body.append(float(y)) # Stačí nám jen y souřadnice (severojižní) # 2. Seřadíme body body.sort() # Připravíme si proměnné pro hlavní výpočet maxBodu = 0 maxZacatek = 0 # Kolik bodů je v intervalu, na začátku použijeme hodnotu 2, což je trochu trik, # protože po přesunu na první bod 1 odečteme a chceme mít hodnotu 1 intervalBodu = 2 # Na indexu jakého bodu nám aktuálně končí interval intervalKonec = 0 # 3. Posouvání intervalu for zacatek in body: # Odstranění minulého bodu intervalBodu -= 1 # Přidáváme body do vzdálenosti D do intervalu (dokud nějaké body jsou) while intervalKonec + 1 < N and body[intervalKonec+1] <= zacatek+D: intervalBodu += 1 intervalKonec += 1 # Zkontrolujeme maximum if intervalBodu > maxBodu: maxBodu = intervalBodu maxZacatek = zacatek # 4. Vypíšeme nalezené maximum print(f"Nalezené maximum je {maxBodu} v intervalu od {maxZacatek} do {maxZacatek+D}")