欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT1045

程序员文章站 2022-07-15 14:02:23
...
#include <bits/stdc++.h>

using namespace std;

int main() {
    int N;
    cin>>N;
    long a[N],lMax[N],rMin[N];
    vector<long>ans;
    for(int i = 0;i<N;i++)
    {
        cin>>a[i];
    }
    lMax[0] = a[0];
    rMin[N-1] = a[N-1];
    for(int i = 1;i<N;i++)
    {
        lMax[i] = max(lMax[i-1],a[i]);
        rMin[N-i-1] = min(rMin[N-i],a[N-i-1]);
    }

    for(int i = 0;i<N;i++)
    {
        if(i == 0)
        {
            if(a[i]<rMin[i+1]) ans.push_back(a[i]);
        }
        else if(i == N-1)
        {
            if(a[i]>lMax[i-1]) ans.push_back(a[i]);
        } else
        {
            if(a[i]>lMax[i-1] && a[i]<rMin[i+1]) ans.push_back(a[i]);
        }
    }

    cout<<ans.size()<<endl;
    sort(ans.begin(),ans.end());
    for(int i = 0;i<ans.size();i++)
    {
        if(i == 0) cout<<ans[0];
        else cout<<" "<<ans[i];
    }
    cout<<endl;
    return 0;
}
/**
5
1 3 2 4 5
**/

 

相关标签: PAT