Пересекаются ли отрезки

Пересечение отрезков На прямой заданы два отрезка: [a;b] и [c;d]. Выведите YES, если они пересекаются, и NO в противном случае.

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

На вход программе подаются четыре целых числа a, b, c, d (0≤a,b,c,d≤100, a≤b, c≤d.

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

Выведите YES или NO в зависимости от ответа на вопрос задачи.

Примеры
Ввод
Вывод
1 3 2 4
YES
1 2 3 4
NO
1 2 2 4
YES

#include <iostream>
using namespace std;
int main()
{
    int x2 = x2 <= 100;
    int x1 = x1 <= x2;
    int y2 = y2 <= 100;
    int y1 = y1 <= y2;
    cin >> x1 >> x2 >> y1 >> y2;
    if (y2 <= x1 && y1 <= x2 || x1 <= y2 && x2 <= y1){
        cout << "YES";
    }
    else{
    cout << "NO";
    }
    return 0;
}

программа выдает неверный ответ. Помогите исправить ошибку, пожалуйста.


Ответы (1 шт):

Автор решения: Harry

Если не ошибаюсь, то

int main()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    cout << ((((a<c)?c:a)<=((b<d)?b:d))?"YES":"NO") << endl;
}

Исправить вашу программу - не вижу как, кроме как переписать все заново... Что и сделал.

→ Ссылка