小团的蛋糕铺长期霸占着美团APP中“蛋糕奶茶”栏目的首位,因此总会吸引各路食客前来探店。
小团一天最多可以烤n个蛋糕,每个蛋糕有一个正整数的重量。
早上,糕点铺已经做好了m个蛋糕。
现在,有一个顾客要来买两个蛋糕,他希望买这一天糕点铺烤好的最重的和最轻的蛋糕,并且希望这两个蛋糕的重量恰好为a和b。剩余的n-m个蛋糕可以现烤,请问小团能否满足他的要求?
数据范围:,
进阶:时间复杂度,空间复杂度
小团的蛋糕铺长期霸占着美团APP中“蛋糕奶茶”栏目的首位,因此总会吸引各路食客前来探店。
小团一天最多可以烤n个蛋糕,每个蛋糕有一个正整数的重量。
早上,糕点铺已经做好了m个蛋糕。
输入包含多组数据,每组数据两行。
每组数据的第一行包含4个整数,n,m,a,b,空格隔开。这里不保证a和b的大小关系。
接下来一行m个数,空格隔开,代表烤好的蛋糕重量
对于每一组数据,如果可以办到顾客的要求,输出YES,否则输出NO
4 2 2 4 3 3 4 2 2 4 1 1 4 2 2 4 5 5 4 2 4 2 2 4 2 2 2 4 3 3 3 2 2 4 3 3 3 2 2 4 3 3
YES NO NO YES NO NO NO
对于40%的数据,
对于100%的数据,,蛋糕重量不会超过1000
while True: try: n,m,a,b=map(int,input().split()) # n:总共蛋糕个数, m:已做好蛋糕数量 # a, b: 想购买的蛋糕数量 li = list(map(int,input().split())) # 烤好蛋糕的重量 if max(li)>max(a,b) or min(li)<min(a,b): print('NO') pass elif n-m >= 2: print('YES') elif n-m == 1: if max(li)==max(a,b) or min(li)==min(a,b): print('YES') else: print('NO') elif n-m == 0: if max(li)==max(a,b) and min(li)==min(a,b): print('YES') else: print('NO') except: break
while True: try: n,m,a,b = list(map(int,input().strip().split())) c_weight = [int(x) for x in input().strip().split()] c_weight.sort() if a>b: t=a a=b b=t while True: if c_weight[0]<a&nbs***bsp;c_weight[m-1]>b: print("NO") break else: if a in c_weight and b in c_weight: print("YES") break else: if a in c_weight&nbs***bsp;b in c_weight: if n-m>=1 and c_weight[m-1]<=b: print("YES") break else: print("NO") break else: if n-m>=2: print("YES") break else: print("NO") break except: break循环太多,运行超时怎么解决。。。。。。自测是完全可以通过的