Selection Contest for Rookies 4 E Polycarp's New Job

考虑这样一个事实:较小边与较小边比较,较大边与较大边比较一定最优

不然,较大边与较小边比较有可能不能塞入,较小边与较大边比较有可能浪费,不更优,或者说,后者能够塞入的前者一定能塞入,前者能塞入的后者不一定能塞入

考虑每次维护当前较小边的最大值和当前较大边的最大值即可

时间复杂度:O(n)

#include<bits/stdc++.h>

using namespace std;

int n, x, y, a, b;
char c;

int main (void)
{
	scanf("%d",&n);
	for (; n; n--) {
		c=getchar(); scanf("%c%d%d",&c,&x,&y);
		if (x>y) swap(x,y);
		if (c=='+') {
		    a=max(a,x);
			b=max(b,y);
		}
		else {
			if (a<=x&&b<=y) puts("YES");
			else puts("NO");
		}
	}
	return 0;
}

 

posted @ 2020-05-05 00:10  chinakevin  阅读(26)  评论(0编辑  收藏