codeforces 900C. Remove Extra One

来源:互联网 发布:商品查询软件下载 编辑:程序博客网 时间:2024/05/22 03:25

原题链接:
900C

大意:
给出一个1-n的排列的一个数列,若对 ai 满足 ai>aj(j

#include <bits/stdc++.h>using namespace std;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f#define pb push_backconst int MAXN =1e5+10;int n,a[MAXN];int m1[MAXN],m2[MAXN],cnt[MAXN];int main() {    scanf("%d",&n);    mem(m1,0);    mem(m2,0);    mem(a,0);    mem(cnt,0);    for(int i=1;i<=n;i++){        scanf("%d",&a[i]);        m1[i]=m1[i-1];        m2[i]=m2[i-1];        if(a[i]>m1[i]) m2[i]=m1[i],m1[i]=a[i];        else if(a[i]>m2[i]) m2[i]=a[i];    }    for(int i=1;i<=n;i++){        if(a[i]==m1[i]) cnt[m1[i]]--;        if(a[i]==m2[i]) cnt[m1[i]]++;    }    int ans=1;    for(int i=2;i<=n;i++){        if(cnt[ans]<cnt[i]) ans=i;    }    cout<<ans<<endl;    return 0;}
原创粉丝点击