Pagini recente » Cod sursa (job #2817840) | Arhiva de probleme | Cod sursa (job #451552) | Cod sursa (job #2094175) | Cod sursa (job #2401840)
#include <bits/stdc++.h>
using namespace std;
ifstream in("secv2.in");
ofstream out("secv2.out");
int n,a[5005],copie[5005],dp[5005];
unordered_map <int,int> m;
int main()
{int i,j,k,fin=1000000000;
in>>n;
for (i=1;i<=n;i++){
in>>a[i];
copie[i]=a[i];
}
copie[0]=-1,k=1;
sort(copie+1,copie+1+n);
for (i=1;i<=n;i++)
if (copie[i]!=copie[i-1])
m[copie[i]]=k++;
k--;
for (i=1;i<=n;i++)
a[i]=m[a[i]];
for (i=1;i<=n;i++)
{
if (a[i]==1){dp[1]=i;continue;}
if (dp[a[i]-1]==0)continue;
dp[a[i]]=dp[a[i]-1];
if (a[i]==k)
fin=min(fin,i-dp[k]+1);
}
if (fin==1000000000)
out<<"0\n";
else
out<<fin<<"\n";
out.close();
in.close();
return 0;
}