Cod sursa(job #2320965)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 15 ianuarie 2019 14:54:41
Problema Secv Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("secv.in");
ofstream g("secv.out");

int n,i,a[5010],dr[5010];
pair<int,int> b[5010];

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        b[i]={a[i],i};
    }
    sort(b+1,b+n+1);
    a[b[1].second]=1;
    for(i=2;i<=n;i++)
        if(b[i].first==b[i-1].first)
            a[b[i].second]=a[b[i-1].second];
        else
            a[b[i].second]=a[b[i-1].second]+1;
    int Max=a[b[n].second],ans=n+1;
    for(i=1;i<=n;i++)
        if(a[i]==1)
            dr[1]=i;
        else
            if(a[i]!=Max)
                dr[a[i]]=max(dr[a[i]],dr[a[i]-1]);
            else
                ans=min(ans,i-dr[a[i]-1]+1);
    g<<ans;
    return 0;
}