Pagini recente » Cod sursa (job #842959) | Cod sursa (job #608726) | Cod sursa (job #144734) | Cod sursa (job #1196956) | Cod sursa (job #2127367)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int N,i,j,ct,d[5005],mx=999999;
struct elem{int val,poz;}a[5005],b[5005];
inline bool cmp1(elem A, elem B)
{return A.val<B.val;
}
inline bool cmp2(elem A, elem B)
{return A.poz<B.poz;
}
int main()
{fin>>N;
for(i=1;i<=N;i++)
{fin>>a[i].val;
a[i].poz=i;
}
sort(a+1,a+N+1,cmp1);
a[0].val=-1;
for(i=1;i<=N;i++)
{if(a[i].val>a[i-1].val)ct++;
b[i].val=ct;
b[i].poz=a[i].poz;
}
sort(b+1,b+N+1,cmp2);
for(i=1;i<=ct;i++)
d[i]=-999999;
//fout<<ct<<" ";
for(i=1;i<=N;i++)
{if(b[i].val==1)d[1]=i;
else {d[b[i].val]=d[b[i].val-1];
if(b[i].val==ct&&mx>i-d[b[i].val]+1)mx=i-d[b[i].val]+1;
}
}
if(mx>999999)fout<<"-1";
else fout<<mx;
}