题目链接:http://codeforces.com/contest/1008/problem/B
题意是给了n个矩阵,又给出了n个矩阵的宽和高,每一个矩阵都可以翻转(也就是宽变成高,高变成宽),每一个矩阵的高要大于后一个矩阵的高,问题中所给的矩阵是否能符合题意。
思路就是每次维护一个前一个矩阵的最小值...
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int n,a,b;
int Max = 1e9 + 10;
cin>>n;
int flag = 0;
while(n--){
cin>>a>>b;
if(a > Max && b > Max){
flag = 1;
}
if(a < b)swap(a,b);
if(a > Max)Max = b;
else Max = a;
}
if(!flag)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}