码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(模拟)

时间:2014-08-02 15:40:43      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:codeforces   模拟   acm   

题目链接:Codeforces Round #259 (Div. 2)  B. Little Pony and Sort by Shift

求给出的序列最少移动多少次成为非下降序列。移动方式:只能将最后一个元素移到第一个位置 即:a1,?a2,?...,?an?→?an,?a1,?a2,?...,?an?-?1.


从后前开始搜非下降的子序列,然后前面的子序列接在其后面,最后判断变化后的序列是否是非下降序列即可。

AC代码:

#include<stdio.h>
#include<string.h>

int main()
{
	int n,j;
	int a[100010];
	int i,b[100010];

	while(scanf("%d",&n)!=EOF)
	{
		memset(b,0,sizeof b);
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);
		int x=-1,cnt=0;
		for(i=n;i>=1;i--)
		{
			if(a[i]<a[i-1])
			{
				x=i;
				break;
			}
		}
		if(x==-1)
		{
			printf("0\n");
			continue;
		}
		for(i=x,j=0;i<=n;i++,j++)
			b[j]=a[i];
		for(i=1;i<x;i++,j++)
			b[j]=a[i];
		int mark=0;
		for(i=1;i<n;i++)
		{
			if(b[i]<b[i-1])
			{
				mark=1;
				break;
			}
		}
		if(mark==1)
			printf("%d\n",-1);
		else
			printf("%d\n",n-x+1);
	}

return 0;
}


Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(模拟),布布扣,bubuko.com

Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(模拟)

标签:codeforces   模拟   acm   

原文地址:http://blog.csdn.net/u012377575/article/details/38346859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!