原题链接:http://codeforces.com/contest/1008/problem/B
题意:有n个矩阵,然后给出这n个矩阵的宽和高。矩阵可以90°旋转,即仅改变宽和高。问是否可以使矩阵按非上升高度排列,也就是在所有转弯之后,每个矩形的高度必须不大于前一个矩形的高度。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 1e5+10;
struct node {
int x,y;
} Edge[N];
int main() {
int n;
scanf("%d",&n);
scanf("%d%d",&Edge[0].x,&Edge[0].y);
Edge[0].x = max(Edge[0].x,Edge[0].y);
if(n == 1)
printf("YES\n");
else {
for(int i=1; i<n; i++) {
scanf("%d%d",&Edge[i].x,&Edge[i].y);
int Max = max(Edge[i].x,Edge[i].y);
int Min = min(Edge[i].x,Edge[i].y);
if(Max <= Edge[i-1].x) {
Edge[i].x = Max;
} else if(Min <= Edge[i-1].x) {
Edge[i].x = Min;
} else {
printf("NO\n");
return 0;
}
}
printf("YES\n");
}
return 0;
}