B - Little Pony and Sort by Shift
2016-09-22 23:04
627 查看
Submit Status Practice CodeForces
454B
Description
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 Input
Input
Output
Input
Output
Input
Output
0
这道题觉得非常水,但却一直wa,在训练赛的最后12提交过。。汗颜
思路:先将数组复制一遍放在接在数组后面,找到数组中最小的那个数在数组中出现的第一个位置,然后只要从他开始有连续的n个递增(前后相等也可),就可以。。。
第一次的代码:(思路比较智障)
454B
Description
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 Input
Input
2 2 1
Output
1
Input
3 1 3 2
Output
-1
Input
2 1 2
Output
0
这道题觉得非常水,但却一直wa,在训练赛的最后12提交过。。汗颜
思路:先将数组复制一遍放在接在数组后面,找到数组中最小的那个数在数组中出现的第一个位置,然后只要从他开始有连续的n个递增(前后相等也可),就可以。。。
第一次的代码:(思路比较智障)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int a[100005];
int main()
{
int x;
while(cin>>x)
{
int max=0,t,t1,max1=0;
for(int i=0; i<x; i++)
{
scanf("%d",&a[i]);
if(a[i]>max)
{
max=a[i];
t=i;
}
if(a[i]>=max1)
{
max1=a[i];
t1=i;
}
}
for(int i=t;i<x;i++)
{
if(a[i]!=max)
break;
else
{
t=i;
}
}
int flag1=0,flag2=0,flag3=0,flag4=0;
for(int i=1;i<t1;i++)
{
if(a[i-1]>a[i])
flag1=1;
}
for(int i=t1+2;i<x;i++)
{
if(a[i-1111a6
]>a[i])
flag2=1;
}
for(int i=1;i<t;i++)
{
if(a[i-1]>a[i])
flag3=1;
}
for(int i=t+2;i<x;i++)
{
if(a[i-1]>a[i])
flag4=1;
}
if(flag1==0&&flag2==0&&(a[x-1]<=a[0]||t1==x-1))
printf("%d\n",x-1-t1);
else
{
if(flag3==0&&flag4==0&&(a[x-1]<=a[0]||t==0))
printf("%d\n",x-1-t);
else
printf("-1\n");
}
}
return 0;
}
相关文章推荐
- (周日赛)Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(序列)
- codeforces——Little Pony and Sort by Shift
- Codeforces #259 (Div. 2) B. Little Pony and Sort by Shift
- Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(模拟)
- CF 454B Little Pony and Sort by Shift KMP算法简单运用
- Codeforces Round #259 (Div. 2) B - Little Pony and Sort by Shift
- B. Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift
- Codeforces Div. 2 #259-B. Little Pony and Sort by Shift
- Codeforces 259 B - Little Pony and Sort by Shift
- CF 454 B. Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift
- CF 454B(Little Pony and Sort by Shift-序列位移后单调性判断及最小位移[水])
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif
- CF-453/C-Little Pony and Summer Sun Celebration
- hdu 4986 Little Pony and Alohomora Part I(找规律,欧拉常数)
- HDU4985&&bestcoder #7 1001 Little Pony and Permutation(水题)
- Codeforces Round #259 (Div. 1) A. Little Pony and Expected Maximum 数学公式结论找规律水题