求助错在哪里
  • 板块学术版
  • 楼主wangzelin
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/8/2 20:50
  • 上次更新2023/11/3 06:16:11
查看原帖
求助错在哪里
660107
wangzelin楼主2023/8/2 20:50

题目:

给你n个数a_1,a_2,a_3,...,a_n,现要将其排成非递减的顺序,对于当前你每次可以做如下操作 a_1,a_2,a_3,...,a_n→a_n,a_1,a_2,a_3,...,a_n−1,现在问你最少需要操作几次使得序列变成非递减,如果无法使得序列变成非递减,输出-1

代码:

#include<bits/stdc++.h>
using namespace std;

int n,a[100001],f,p;

int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]<a[i-1]&&f)
		{
			cout<<-1;
			return 0;
		}
		else if(a[i]<a[i-1]) f=1,p=i;
	}
	cout<<n-p+1;
    return 0;
}
2023/8/2 20:50
加载中...