题目
原题链接:B. Little Pony and Sort by Shift
题意
给出n个数字,每次只能把最后一个数字放在第一个位置。问数组能否递减,若能问需要操作几步。
参考了其他作者的代码和思路。找到位置最小的最小值,从它开始检查是否递减。
代码
#include
using namespace std;
int main() {
int n,s[100000],minn=1e9,t,flag=0;
cin>>n;
for(int i=0;i>s[i];
if(s[i]minn){
flag=1;
}
}
for(int i=1;i s[(i+t)%n]){
printf("-1\n");
return 0;
}
minn=s[(i+t)%n];
}
printf("%d\n",t==0?0:n-t);
return 0;
}