Pagini recente » Cod sursa (job #2707007) | Cod sursa (job #114179) | Cod sursa (job #2701953) | Cod sursa (job #881923) | Cod sursa (job #3242588)
#include <fstream>
#include <map>
using namespace std;
ifstream fcin("secv.in");
ofstream fout("secv.out");
int n,v[10001],d[10001],last[10001],minx;
map <int,int> mp;
int main()
{
fcin>>n;
minx=(1<<30);
for(int i=1; i<=n; i++)
fcin>>v[i], mp[v[i]]=1;
map <int,int>::iterator k;
int j=0;
for(k=mp.begin(); k!=mp.end(); k++)
{
j++;
k -> second = j;
}
for(int i=1; i<=n; i++)
v[i]=mp[v[i]];
for(int i=1; i<=n; i++)
{
if(v[i]==1)
{
d[i]=1;
last[v[i]]=i;
}
else
{
if(last[v[i]-1]>0)
{
d[i]=d[last[v[i]-1]]+i-last[v[i]-1];
last[v[i]]=i;
}
}
}
for(int i=1; i<=n; i++)
{
if(v[i]==j && d[i]!=0)
{
minx=min(minx,d[i]);
}
}
if(minx==(1<<30))
fout<<-1;
else
fout<<minx;
return 0;
}