Educational Codeforces Round 58 (Rated for Div. 2) E. Polycarp's New Job(思维)

版权声明:欢迎转载,若转载,请标明出处,如有错误,请指点,也欢迎大佬们给出优化方法 https://blog.csdn.net/Charles_Zaqdt/article/details/86428944

题目链接:http://codeforces.com/contest/1101/problem/E

       题意是当输入的是'+'时,表示要装入一张x*y的现金,当输入的是'?'时,表示现在有一个x*y的钱包,能不能把之前的那些现金都装进去,现金可以90旋转。

       思维就是我们都让它的x为短边,y为长边,然后维护两个最大值就好了。


AC代码:

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;

int main()
{
    int n;
    scanf("%d",&n);
    char str[10];
    int x = 0,y = 0;
    int l, r;
    for(int i=0;i<n;i++){
        scanf("%s%d%d",str, &l, &r);
        if(l > r) swap(l, r);
        if(str[0] == '+'){
            x = max(x, l);
            y = max(y, r);
        }
        else{
            if(x <= l && y <= r) puts("YES");
            else puts("NO");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Charles_Zaqdt/article/details/86428944