3.2 Точки маршруту дрона

Після екстракції маємо список points. Тут скрипт рахує, скільки точок лежить строго всередині квадрата 5000x5000, а потім шукає три точки, де одна є серединою між двома іншими.

← До списку

Точки маршруту

# x y 0<x<5000 0<y<5000 inside?
Поточна точка
?
з points
Квадрат
?
0 < x < 5000 і 0 < y < 5000
Лічильник
inside = 0
скільки точок зараховано
Пара точок
?
p1 і p2 з подвійного циклу
Суми координат
sx=?, sy=?
перевіряємо парність
Середина
?
middle in point_set?
points вже побудовано: кожна точка - це нове (x, y) після руху дрона.

Поточна перевірка середини

p1
?
middle
?
p2
?
Карта маршруту 0 точок
квадрат 0..5000 поточна точка p1 / p2 середина знайдена в points

Що тут важливо

Строго всередині означає не на межі. Якщо x = 0, x = 5000, y = 0 або y = 5000, точка не рахується.
Середина двох точок має координати ((x1+x2)/2, (y1+y2)/2). Тому скрипт спочатку дивиться, чи суми парні.
point_set потрібен, щоб швидко питати: "а така точка взагалі була у маршруті?" Без set довелося б щоразу перебирати весь список.