Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif
来源:互联网 发布:销售奖励政策 知乎 编辑:程序博客网 时间:2024/06/05 14:44
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:
Help Twilight Sparkle to calculate: what is the minimum number of operations that she needs to sort the sequence?
The first line contains an integer n (2 ≤ n ≤ 105). The second line contains n integer numbers a1, a2, ..., an (1 ≤ ai ≤ 105).
If it's impossible to sort the sequence output -1. Otherwise output the minimum number of operations Twilight Sparkle needs to sort it.
22 1
1
31 3 2
-1
21 2
0
题意:对数组排序,你只能将最后一个元素放到第一个位置。问要操作几次。如果不能这样实现排序,输出-1。
思路:统计第n个元素比第n-1个元素小的个数。如果有两个以上,直接输出-1。如果只有一个,比较最后一个元素和第一个元素,如果最后一个元素小于第一个元素,那么可以排序,操作次数由出现a[n]<a[n-1]的位置得出。
#include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> #include <iomanip> #include <cstdlib> #include <string> #include <memory.h> #include <vector> #include <queue> #include <stack> #include <map>#include <set>#define ll long long#define INF 1000000using namespace std;int num[100010];int main(){int n;while(cin>>n){for(int i=1;i<=n;i++){scanf("%d",&num[i]);}int cnt=0;int k;for(int i=2;i<=n;i++){if(num[i]<num[i-1]){cnt++;k=i;}}if(cnt==0){cout<<"0"<<endl;}else if(cnt==1){if(num[n]<=num[1]){cout<<n-k+1<<endl;}else{cout<<"-1"<<endl;}}else{cout<<"-1"<<endl;}}return 0;}
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif
- 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 453 B Little Pony and Harmony Chest(Round 259 div.1 B/div.2 D)
- 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
- Codeforces Round #259 (Div. 1) B. Little Pony and Harmony Chest(状压dp)
- Codeforces Round #259 (Div. 2) problemsA Little Pony and Crystal Mine
- codeforce 259A 最新题解 第二场
- Android actionBar
- 13.7 Scramble String
- Codeforces Round #259 (Div. 2) C. Little Pony and Expected Maximum
- 【一维dp_线性扫描】Word Break 、Best time to Buy and Sell Stocks |||、max subarray、jump game |||
- Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif
- 13.8 Minimum Path Sum
- Codeforces Round #259 (Div. 2) A. Little Pony and Crystal Mine
- 【字符串匹配】KMP(implement strStr()), 正则匹配(Wildcard Matching),2-dim 动规(regular expression)
- Codeforces Round #259 (Div. 2) (最差的一次比赛。说多了都是泪)
- [算法浅析] 如何在O(1)的时间里删除单链表的结点
- LeetCode刷题笔录Combination Sum
- 关于spring 2.0自定义xml 标记 (一 主要的相关类)
- LeetCode刷题笔录Partition List