题意:输入多组数据,有的数据代表硬币的长宽,有的数据代表钱包的长宽,问你当这组数据代表钱包的长宽时,能不能把它前面出现的所有硬币全部装下。
思路:只要钱包的长宽大于前面出现的所有硬币的长宽就可以装下,那么就去找前面出现硬币当中最大的长,和最大的宽。只要钱包的长宽能大于它们,就可以装的下。反之,一定不可以。
#include<iostream> #include<cmath> #include<cstdio> #define inf 1000000007 using namespace std; int n; int max_b=-inf,max_c=-inf; char a; int b,c; int main() { cin>>n; while(n--) { cin>>a>>b>>c; if(b>c) swap(b,c); if(a=='+') { max_b=max(max_b,b); max_c=max(max_c,c); } else { if(b>=max_b&&c>=max_c) cout<<"YES"<<"\n"; else cout<<"NO"<<"\n"; } } return 0; }