Узник замка Иф
За многие годы заточения узник замка Иф проделал в стене прямоугольное отверстие размером D×E. Замок Иф сложен из кирпичей размером A×B×C. Определите, сможет ли узник выбрасывать кирпичи в море через это отверстие, если стороны кирпича должны быть параллельны сторонам отверстия.
Входные данные
Программа получает на вход числа A, B, C, D, E. Все числа натуральные, не превосходящие 10000.
Выходные данные
Программа должна вывести слово YES или NO.
Примеры

#include < iostream >
using namespace std;
int main()
{
int a, b, c, d, e;
cin >> a >> b >> c >> d >> e;
if (a > c) swap(a, c);
if (b > c) swap(b, c);
if (a > b) swap(a, b);
if (d > e) swap(d, e);
cout << (a <= d && b <= e ? "Yes" : "No");
}
#include <iostream>
int mn(int a, int b, int c) {
if (b < a) a = b;
if (c < a) a = c;
return a;
}
int mn(int a, int b) {
if (b < a) a = b;
return a;
}
int mx(int a, int b, int c) {
if (b > a) a = b;
if (c > a) a = c;
return a;
}
int mx(int a, int b) {
if (b > a) a = b;
return a;
}
long long sm(int a, int b, int c) {
return long long(a) + b + c;
}
int md(int a, int b, int c) {
auto s = sm(a, b, c);
auto x = mx(a, b, c);
auto n = mn(a, b, c);
return static_cast<int>(s - x - n);
}
int main() {
int a, b, c, d, e;
std::cin >> a >> b >> c >> d >> e;
if (mn(a, b, c) <= mn(d, e)) {
if (md(a, b, c) <= mn(d, e)) puts("YES");
else puts("NO");
} else puts("NO");
}
#include "iostream"
#include "algorithm"
using namespace std;
int main(){
int k[5]; for(int &i:k)cin>> i; sort(k,k+3); sort(k+3,k+5);
cout<<(k[1]<=k[4]&&k[0]<=k[3]?"Yes\n":"No\n");}
Извините