Pagini recente » Cod sursa (job #443206) | Cod sursa (job #213766) | Cod sursa (job #2224861) | Istoria paginii runda/fns_fanpage | Cod sursa (job #2034798)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int n,a[5001],b[5001],ct;
map <int,int> m;
map <int,int> t;
int lg[5001],nr[5001];
int main()
{
int i;
fin>>n;
for(i=1;i<=n;i++)
{fin>>a[i];
nr[i]=-1;
m[a[i]]++;
if(m[a[i]]==1)
b[++ct]=a[i];
}
sort(b+1,b+ct+1);
for(i=1;i<=ct;i++)
m[b[i]]=i;
for(i=1;i<=n;i++)
{
if(a[i]==b[1])
{
nr[b[1]]=i;
lg[i]=1;
}
else
if(nr[m[a[i]]-1]!=-1)
{
nr[a[i]]=i;
lg[i]=(i-nr[m[a[i]]-1])+lg[nr[m[a[i]]-1]];
}
}
if(nr[ct]==-1)
fout<<-1;
else
{int mini=9999;
for(i=1;i<=n;i++)
if(a[i]==b[ct]&&nr[ct]!=-1)
if(lg[i]<mini)
mini=lg[i];
fout<<mini;
}
return 0;
}