eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Ограждение стада

Ограждение стада

Фермер Джон нуждается в Вашей помощи. Он решил построить изгородь в форме прямой, чтобы ограничить движение своих коров. Он рассматривает несколько вариантов размещения изгороди и с Вашей помощью хочет определить наиболее подходящий. Подходящим считается вариант, когда все коровы находятся по одну сторону изгороди. Изгородь не считается подходящей, если хоть одна корова расположена на изгороди. ФД будет задавать Вам вопросы про варианты изгороди, на которые Вы должны отвечать YES, если изгородь подходит и NO, в противном случае.

Кроме того, ФД может добавить новых коров в стадо. С того момента, как корова добавлена, она должна быть по одну сторону от изгороди со всеми другими коровами.

Входные данные

Первая строка содержит n (1n105) и q (1q105). Это, соответственно, начальное количество коров в стаде и количество запросов.

Следующие n строк описывают начальное положение стада. Каждая строка содержит два целых числа x и y, представляющие позицию очередной коровы.

Оставшиеся q строк содержат запросы, либо добавляющие новую корову в стадо, либо проверяющие изгородь на применимость. Строка вида "1 x y" означает, что новая корова добавляется в стадо на позицию x y (-109x, y109). Строка вида "2 A B C" означает, что ФД хочет проверить изгородь, описываемую прямой Ax + By = C.

Все позиции коров уникальны. Кроме того, -109A, B109 и -1018C1018. Никогда не будет изгороди с A = B = 0.

Выходные данные

Для каждой изгороди выведите YES, если она подходит и NO в противном случае.

Пример

Прямая 2x + 2y = 3 оставляет начальные 3 коровы по одну сторону. Однако корова (1, 1) на другой стороне, поэтому после её добавления такая изгородь уже не подходит. Прямая y = 1 не подходит, поскольку коровы (0, 1) и (1, 1) находятся на ней.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
3 4
0 0
0 1
1 0
2 2 2 3
1 1 1
2 2 2 3
2 0 1 1
Выходные данные #1
YES
NO
NO
Источник 2015 USACO Февраль, Золото