题目
原题链接:B. Sort the Array
题意
反转数组内的数字,使其成为一个递增序列。最开始想找到第一个小于前一个和大于后一个的而数字,交换它俩即可,由于是用一个for循环找的不准,所以参考其他作者的代码,用了两个for循环+reverse函数,顺利通过。
代码
#include
using namespace std;
int main() {
int n,s[100010];
scanf("%d",&n);
for(int i=1; i<=n; i++) {
scanf("%d",&s[i]);
}
int x=1,y=1;
for(int i=1; is[i+1]) {
x=i;
break;
}
}
for(int i=n; i>1; i--) {
if(s[i]s[i+1]) {
flag=1;
break;
}
}
if(flag) printf("no\n");
else printf("yes\n%d %d\n",x,y);
return 0;
}