#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int v[3], a[3];
for (int i = 0; i < 3; i++) cin >> v[i];
for (int i = 0; i < 3; i++) cin >> a[i];
sort(v, v + 3); // 齐王的马
sort(a, a + 3); // 田忌的马
int win = 0, i = 0, j = 0, x = 2, y = 2;
while (i <= x && j <= y) {
if (a[x] > v[y]) { // 田忌最快的马能赢
win++;
x--; y--;
} else if (a[i] > v[j]) { // 田忌最慢的马能赢齐王最慢的
win++;
i++; j++;
} else { // 否则田忌最慢的马送掉
i++; y--;
}
}
if (win > 1) cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}
- 排序:将田忌和齐王的马速度分别升序排序。
- 双指针匹配:如果田忌当前最快的马能赢齐王当前最快的马,则都用最快的出战,田忌胜场+1。否则,田忌用最慢的马去“送”给齐王最快的马(牺牲),齐王最快的马淘汰掉。
- 统计胜场:如果田忌胜场大于 1,则输出 Yes,否则输出 No。