Проверьте, пересекаются ли какие-либо пары полуокружностей или нет
Опубликовано: 22 Сентября, 2022
Дан массив arr[] , состоящий из N целых чисел, такой, что каждая пара точек (x, y) представляет концы полуокружности как (x, 0) и (y, 0) , задача состоит в том, чтобы проверить, есть ли какая-либо пара полуокружностей пересекаются или нет. Если найдено верно , то выведите «Да» . В противном случае выведите «Нет» .
Примеры:
Input: arr[] = {0, 15, 5, 10}
Output: NoInput: arr[] = {0, 10, 5, 15}
Output: Yes
Подход: Данную задачу можно решить, проверив, пересекаются ли какие-либо пары полуокружностей, а затем выведите соответствующие элементы. Выполните следующие шаги, чтобы решить проблему:
- Сохраните все возможные полуокружности в векторе с соответствующими координатами x и координатами y .
- Теперь сгенерируйте все возможные пары вышеуказанных векторов и выполните следующие шаги:
- Пусть парой координат будут X и Y , и проверьте, пересекаются ли окружности или нет, используя следующие условия:
- Если значение (X[0] < Y[0] , X[1] < Y[1] и Y[0] < X[2]) или (Y[0] < X[0] , Y[1 ] < X[1] и X[0] < Y[1]) , то полуокружность пересекается. В противном случае он не пересекается.
- Если два вышеуказанных круга пересекаются, то выведите «Да» и выйдите из цикла.
- Пусть парой координат будут X и Y , и проверьте, пересекаются ли окружности или нет, используя следующие условия:
- После выполнения вышеуказанных шагов, если какая-либо пара окружностей не пересекается, выведите «Нет» .
Временная сложность: O(N 2 )
Вспомогательное пространство: O(N)