 POLYGON | Задача На плоскости расположены многоугольник и одна или несколько точек. Напишите программу POLYGON, которая для каждой из данных точек определяет, видны ли из нее все вершины многоугольника. Заметим, что вершина видна из данной точки, если отрезок, соединяющий эти две точки, не имеет больше ни одной общей точки со сторонами многоугольника. Если данная точка расположена на какой-нибудь стороне многоугольника или на ее продолжении, то соответствующая сторона из этой точки не видна Формат входных данных В первой строке входного файла POLYGON.IN записано количество вершин многоугольника M (3<= M<=50000), а в последующих M строчках - соответствующие координаты вершин многоугольника (x,y), где x,y – два целых числа, разделенных пробелом. Координаты заданы в порядке обхода вершин многоугольника. В (M+2-ой) строке записано количество проверяемых точек N (1<=N<=10), и далее в N строчках - координаты проверяемых точек x и y (-10000<=x,y<=10000) – два целых числа, разделенных пробелом Формат выходных данных Выходной файл POLYGON.OUT должен состоять из N строк. В i-ой (1<=i<=N) строке должно находится слово “YES”, если из i-ой точки видны все вершины многоугольника, и “NO” в противном случае Например: POLYGON.IN 4 0 2 2 4 4 2 2 0 2 0 0 2 2 POLYGON.OUT NO YES
|
|---|