Codeforces Round #259 (Div. 2)-B. Little Pony and Sort by Shift
来源:互联网 发布:ie8 js serialize 编辑:程序博客网 时间:2024/06/05 20:29
B. Little Pony and Sort by Shift
time limit per test
1 secondmemory limit per test
256 megabytesinput
standard inputoutput
standard outputOne 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:
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
22 1
output
1
input
31 3 2
output
-1
input
21 2
output
0
思路:昨天晚上做,模拟的超时,今天再一想其实只需要记录不是非降子序列的次数(cnt) 当 cnt==0 就输出0; 当 cnt=1 && a[n-1]<a[0]时输出次数 其他输出-1 以下附上超时代码和AC代码
/*ILE*/ #include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;int a[100006*3];int b[100006];int cmp(const void *a,const void *b){return *(int *)b-*(int *)a;} int main(){int n;int i,j;int k;while(scanf("%d",&n)!=EOF){int flag,flag1=0;int cnt=0; for(i=n-1;i>=0;i--){ scanf("%d",&a[i]); b[i]=a[i]; } qsort(b,n,sizeof(b[0]),cmp);// for(i=0;i<n;i++)// cout<<b[i]<<" ";// cout<<endl; flag=0; for(i=0;i<n;i++){ if(a[i]!=b[i]){ flag=1; break; } } if(!flag) printf("0\n"); else{ cnt=0; for(i=0;i<n;i++){ a[n]=a[0]; for(j=0;j<n;j++) a[j]=a[j+1]; // for(j=0;j<n;j++)// cout<<a[j]<<" ";// cout<<endl; flag1=0; for(j=0;j<n;j++){ if(a[j]!=b[j]){ flag1=1; break; } } if(flag1) cnt++; } //printf("cnt=%d\n",cnt); if(cnt>=n){ printf("-1\n"); }else printf("%d\n",cnt); } } return 0;}/*AC*/ #include <iostream>#include <cstdio>#include <cstring>using namespace std;int a[100006];int main(){int i,n,cnt,k;while(scanf("%d",&n)!=EOF){for(i=1;i<=n;i++)scanf("%d",&a[i]);cnt=0;k=1;for(i=2;i<=n;i++){if(a[i]<a[i-1]){cnt++;k=i;}}if(cnt==0)printf("0\n");else if(cnt==1&&a[n]<=a[1]){printf("%d\n",n+1-k);}else{printf("-1\n");}}return 0;}
0 0
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2)-B. Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(模拟)
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift(序列)
- Codeforces Round #259 (Div. 2) B - Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shift
- Codeforces #259 (Div. 2) B. Little Pony and Sort by Shift
- Codeforces Div. 2 #259-B. Little Pony and Sort by Shift
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif
- Codeforces 454B. Little Pony and Sort by Shift
- Codeforces 454B Little Pony and Sort by Shift(水题)
- CodeForces 454B Little Pony and Sort by Shift
- B. Little Pony and Sort by Shift
- B - Little Pony and Sort by Shift
- CF 454 B. Little Pony and Sort by Shift
- CF 454B Little Pony and Sort by Shift
- Codeforces 453 B Little Pony and Harmony Chest(Round 259 div.1 B/div.2 D)
- 代码重构之一 变质的代码
- java中final关键字的使用
- 烦死
- Json整理
- csdn开源夏令营中期总结
- Codeforces Round #259 (Div. 2)-B. Little Pony and Sort by Shift
- iOS下用一行代码实现tableview(collectionview)的parallax效果
- TP-LINK WR703N 刷OpenWrt并设置pppoe联网、安装LUCI、添加新用户、挂载USB设备、配置ftp服务、借由transmission实现脱机下载
- 菜鸟的安卓实习之路---采用preferenceFragment布局
- CSS编码规范(二)
- Charm Bracelet poj 3624 (01) 背包问题 c++
- 使用归档来创建对象的深复制
- socket套接字TCP API说明
- hibernate-Query.list()与Query.iterate()比较