码迷,mamicode.com
首页 > 其他好文 > 详细

Sort the Array

时间:2014-08-02 01:31:22      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   ar   div   

 1 /*
 2    思路: 
 3    找到单调下降串的起始位置[l, r]
 4    如果左边 0...l-1中的最大值 > l...r中的最小值 或者
 5    r+1...n中的最小值 < l...r中的最大值 都是不能实现排序的! 
 6 */
 7 #include<iostream>
 8 #include<cstdio>
 9 #include<algorithm>
10 using namespace std;
11 typedef long long LL;
12 int cur, nt;
13 int cnt;
14 int num[100005];
15 int main(){
16    int i, n;
17    int begin, end;
18    int flag;
19    int min1, max2;
20    while(scanf("%d", &n)!=EOF){
21           cnt=cur=0;
22        flag=0;
23        for(i=1; i<=n; ++i){
24           scanf("%d", &nt);
25           num[i]=nt;
26           if(nt>cur)
27              flag=0;
28           if(!flag && nt<cur){
29              ++cnt;
30              flag=1;
31              begin=i-1;
32              end=i;
33           }
34           if(flag && nt<cur)
35                end=i;
36           cur=nt;
37        }
38       if(cnt==1){
39            min1=0x3f3f3f3f;
40            if(end!=n)
41                min1=num[end+1];
42          max2=-0x3f3f3f3f;
43          if(begin!=1)
44              max2=num[begin-1];
45          if(max2>num[end] || min1<num[begin]) 
46             printf("no\n");
47          else
48             printf("yes\n%d %d\n", begin, end);
49       }
50       else if(cnt==0)
51          printf("yes\n1 1\n");
52       else printf("no\n");
53    }
54    return  0;
55 }

 

Sort the Array,布布扣,bubuko.com

Sort the Array

标签:style   blog   color   os   io   for   ar   div   

原文地址:http://www.cnblogs.com/hujunzheng/p/3885952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!