问题标题: 4216 数组拆分

0
0
已解决
张皓然
张皓然
中级光能
中级光能

4216   数组拆分

经验值:1600

时间限制:1000毫秒

内存限制:128MB

题目描述 De**ion

现在给出一个整数数组,现在要求将这个数组从中间某个位置分成两个部分。要求分成两部分之后,左半部分数组的最大值要小于等于右半部分数组的最小值。求出左半部分数组的最少的元素个数。

输入描述 Input De**ion

第一行,一个整数n,表示数组的长度
第二行,n个正整数

输出描述 Output De**ion

满足条件的左半部分数组的最小长度

样例输入 Sample Input

5 1 2 3 4 5

样例输出 Sample Output

1

数据范围及提示 Data Size & Hint

n≤10000

 

#include<bits/stdc++.h>
using namespace std;
int n;
int a[10005];
int minn=10005;
int maxx[10005];
int minx[10005];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=n;i>=1;i--){
        if(i==n)
            maxx[i]=a[i];
        else
            maxx[i]=max(maxx[i+1],a[i]);
    }
    for(int i=1;i<=n;i++){
        if(i==1)
            minx[i]=a[i];
        else
            minx[i]=min(minx[i-1],a[i]);

    }
    for(int i=1;i<n;i++){
         if(maxx[i]<=minx[i+1]);
            minn=min(minn,i);
//      cout<<cnt<<" "<<minn<<"\n";
    } 
    cout<<minn;
    return 0;
}

 

 

 

 

 

急救!!!急救!!!

 

70豆子不成敬意


0
已采纳
丁炳瑜
丁炳瑜
高级光能
高级光能

既然是同学,采纳吧!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

我要回答