欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Codeforces Round #258 (Div. 2) B. Sort the Array (模拟)

程序员文章站 2022-06-16 19:32:12
...

题目链接:Codeforces Round #258 (Div. 2) B. Sort the Array 题意:给出一串序列要就通过一次反转一段子序列使得变化后的序列严递增。 思路:从左向右找出首次下降的,从右向左找出首次下降的,分别记录下标,再在这个段区间里反转。最后判断是否递增。 反

题目链接:Codeforces Round #258 (Div. 2) B. Sort the Array

题意:给出一串序列要就通过一次反转一段子序列使得变化后的序列严格递增。

思路:从左向右找出首次下降的,从右向左找出首次下降的,分别记录下标,再在这个段区间里反转。最后判断是否递增。

反转想到字符串(或STL)有个反转库函数。读者可以试试。

AC代码:


#include
int main()
{
	int n,i;
	int x,y,j;
	int a[100010];
	while(scanf("%d",&n)!=EOF)
	{
		for(i=1;i=a[i])
			{
				x=i-1;
				break;
			}
		}
		for(i=n;i>=1;i--)
		{
			if(a[i-1]>=a[i])
			{
				y=i;
				break;
			}
		}
		//一开始就是递增的
		int t;
		if(x==y && x==-1)
		{
			printf("yes\n%d %d\n",1,1);
			continue;
		}
		//反转。
		for(i=x,j=1;j=a[i])
			{
				mark=1;
				break;
			}
		}
		if(mark==1)
			printf("no\n");
		else
			printf("yes\n%d %d\n",x,y);
	}
return 0;
}