Pagini recente » Cod sursa (job #1133827) | Cod sursa (job #1550754) | Cod sursa (job #1226438) | Cod sursa (job #1038951) | Cod sursa (job #463800)
Cod sursa(job #463800)
#include<fstream>
#define max_n 5010
using namespace std;
unsigned int a[max_n],b[max_n],h[max_n];
int cmp(int i, int j)
{
return a[i]<a[j];
}
int main()
{
int i,j,nr=0,n,unsub,res=10000;
ifstream read ("secv.in");
ofstream write ("secv.out");
read>>n;
for(i=1;i<=n;++i)
{
read>>a[i];
h[i]=i;
}
sort(h+1,h+n+1,cmp);
i=1;
while(i<=n)
{
++nr;
j=i;
while(a[h[i]]==a[h[i+1]])
++i;
for(int t=j;t<=i;++t)
b[h[t]]=nr;
++i;
}
for(j=n;j;--j)
if(b[j]==nr)
{
i=j-1;
unsub=nr-1;
while(i&&unsub)
{
if(b[i]==unsub)
--unsub;
--i;
}
res=min(res,j-i);
}
if(unsub)
write<<"-1\n";
else
write<<res<<'\n';
return 0;
}