找出递减序列 如果递减序列只有一个并且翻转后数组单调递增 符合条件输出yes
#include<bits/stdc++.h>
using namespace std;
int a[100020];
int main()
{
int n;
scanf("%d",&n);
int flag=0,begin=1,end=1,Max=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(flag==0&&a[i]<Max)
{
begin=i-1;
flag=1;
if(i==n)
end=i;
}
else if(flag==1&&a[i]>Max)
{
end=i-1;
flag=2;
}
else if(flag==1&&i==n)
end=i;
else if(flag==2&&a[i]<Max)
flag=3;
Max=a[i];
}
if((flag==2&&a[end]>a[begin-1]&&a[begin]<a[end+1])||(flag==1&&a[end]>a[begin-1])||flag==0)
printf("yes\n%d %d\n",begin,end);
else
printf("no\n");
return 0;
}