rainyroad

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

题意:输入多组数据,有的数据代表硬币的长宽,有的数据代表钱包的长宽,问你当这组数据代表钱包的长宽时,能不能把它前面出现的所有硬币全部装下。

思路:只要钱包的长宽大于前面出现的所有硬币的长宽就可以装下,那么就去找前面出现硬币当中最大的长,和最大的宽。只要钱包的长宽能大于它们,就可以装的下。反之,一定不可以。

#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;
}

 

posted on 2019-01-18 20:05  rainyroad  阅读(122)  评论(0编辑  收藏  举报