根据题面我们很容易看出,对于任何一个碟子,只要它的半径不为nn,它的上面就不能放碟子(因为放了就移不下来了)

这样的话,我们考虑以半径为nn的碟子为界,将所有碟子分为两半。显而易见,它左边的碟子直径必然是递增的,而右边则必然是递减的。以此为条件判断即可。

上代码:

#include<iostream>
using namespace std;
int a[200005];
int main(){
	int n,maxm=0,wz;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(a[i]>=maxm)
			maxm=a[i],wz=i;//标记直径最长的碟子位置
	}
	int bj=true;
	for(int i=1;i<wz;i++)
		if(a[i]<a[i-1])bj=false;//判断左边碟子直径
	for(int i=wz+1;i<n;i++)
		if(a[i]>a[i-1])bj=false;//右边同理
	if(bj)cout<<"YES\n";
	else cout<<"NO\n";
	return 0;
}

吐槽:没有蓝题难度吧...最多橙题~黄题吧