Home > Database > Mysql Tutorial > body text

codeforces Round #259(div2) B解题报告

WBOY
Release: 2016-06-07 15:18:54
Original
1053 people have browsed it

B. Little Pony and Sort by Shift time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output One day, Twilight Sparkle is interested in how to sort a sequence of integers a 1 ,? a 2 ,?...,?

B. Little Pony and Sort by Shift

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

One day, Twilight Sparkle is interested in how to sort a sequence of integers a1,?a2,?...,?an in non-decreasing order. Being a young unicorn, the only operation she can perform is a unit shift. That is, she can move the last element of the sequence to its beginning:

a1,?a2,?...,?an?→?an,?a1,?a2,?...,?an?-?1.

Help Twilight Sparkle to calculate: what is the minimum number of operations that she needs to sort the sequence?

Input

The first line contains an integer n (2?≤?n?≤?105). The second line contains n integer numbers a1,?a2,?...,?an (1?≤?ai?≤?105).

Output

If it's impossible to sort the sequence output -1. Otherwise output the minimum number of operations Twilight Sparkle needs to sort it.

Sample test(s)

input

2
2 1
Copy after login

output

1
Copy after login

input

3
1 3 2
Copy after login

output

-1
Copy after login

input

2
1 2
Copy after login

output

0
Copy after login

题目大意:

给出N个数字,可以每一次将最后一个数字移动到最前面,要求最终状态是一个单调非递减的序列,求最少需要花多少次操作。如若无法达到目标则输出“-1"。

解法:

也是一道很easy的编程基础题,找出两队单调非递减序列,分别为1~x 和 x+1~y,判断这两队是否覆盖整串数字,且a[n]

更简单的一种做法就是,将a[1]~a[n]复制一遍,拓展到a[1]~a[2*n],然后在1 ~ 2*n里面找,是否有一串单调不递减的个数为n的序列。

代码:

#include <cstdio>
#define N_max 123456

int n, x, y, cnt;
int a[N_max];

void init() {
	scanf("%d", &n);
	for (int i = 1; i  a[i+1]) {
			x = i;
			break;
		}

	if (x == n)
		y = n;
	else
		for (int i = x+1; i  a[i+1]) {
				y = i;
				break;
			}

	if (x == n)
		printf("0\n");
	else if (y == n && a[y] 


</cstdio>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!