比赛 20240913练习 评测结果 AWWWWWWWAA
题目名称 奶牛排队 最终得分 30
用户昵称 郑霁桓 运行时间 0.534 s
代码语言 C++ 内存使用 5.01 MiB
提交时间 2024-09-13 20:55:31
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,t,b[100005],p;
int s;
map<long long,long long>mp;
struct nm{
    long long v,id;
}a[100005];
bool c(nm x,nm y){
    return x.v<y.v;
}
int main(){
    freopen("tahort.in","r",stdin);
    freopen("tahort.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].v;
        a[i].id=i;
    }
    sort(a+1,a+n+1,c);
    for(int i=1;i<=n;i++){
        if(a[i].v!=a[i-1].v){
            b[a[i].id]=++t;
        }else{
            b[a[i].id]=t;
        }
    }
    for(int i=1;i<=n-s;i++){
        mp.clear();
        p=0;
        for(int j=i+1;j<=n;j++){
            if(b[j]>=max(p,b[i]+1)&&!mp[b[j]]){
                s=max(s,j-i+1); 
                mp[b[j]]++;
                p=b[j];
            }else{
                i=j-1;
                break;
            }
        }
    }
    cout<<s<<endl;
    return 0;
}