独角兽排序问题 Codeforces Round #259(Div.2)

原题链接

分析:满足题目条件的序列只有两种。第一种是从小到大排列的序列,如:1,2,3,4,5;还有一种满足条件的是:从中间某个地方断开,前面的数是递增序列,后面的数也是递增序列,且这个数组的第一个元素要比最后一个元素大,如:4,5,1,2,3。首先判断这个序列是不是一个从小到大递增的序列,如果是就不用进行接下来的判断,如果在中间某一点处发现这个数比后面的数大,那么进入后面数列的循环,看看后面的数是否满足递增,每满足一次递增条件,计数器count自加一次,除此之外,还要判断这个数组的最后一个元素是否比第一个元素小。

#include
   
   
    
    
using namespace std;
#define MAX 100000
int a[MAX];
int main(){
	int n,i,j,count=0;						//设置一个计数器 
	bool flag = 1;							//设置一个判断标志 
	cin>>n;
	for(i=0;i
    
    
     
     >a[i]; 
	for(i=0;i
     
     
      
      a[i+1]){				//如果一个数比它后面的数大则进入第二次循环 
				for(j=i+1;j
      
      
       
       a[j+1]){	//后面的数不满足递增 
							flag = 0;
							break;
						}
						else
							count++;
					}				
				}
				if(a[0]
       
       
      
      
     
     
    
    
   
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值