Pagini recente » Cod sursa (job #2593784) | Cod sursa (job #2753019) | Cod sursa (job #1710941) | Cod sursa (job #2736386) | Cod sursa (job #497008)
Cod sursa(job #497008)
#include<fstream>
#include<algorithm>
#define NMAX 5001
using namespace std;
struct vezi
{
int val, o;
}aux[NMAX];
int a[NMAX], i, n, b[NMAX], nr, p, mn, j;
int cmp(vezi x, vezi y)
{
return x.val<y.val;
}
int main()
{
ifstream f("secv.in");
ofstream g("secv.out");
f>>n;
for (i=1; i<=n; ++i) {f>>a[i];aux[i].val=a[i];aux[i].o=i;}
sort(aux+1, aux+n+1, cmp);
aux[0].val=aux[1].val;
aux[n+1].val=aux[n].val+10;
nr=0;
for (i=1; i<=n+1; ++i)
if (aux[i].val!=aux[i-1].val) b[++nr]=aux[i-1].val;
i=1;mn=NMAX;
while (aux[i].val==aux[1].val)
{
j=aux[i].o+1;p=1;
while (p<nr && j<=n)
{
if (a[j]==b[p+1]) ++p;
++j;
}
if (p==nr && mn>j-aux[i].o+1)mn=j-aux[i].o;
++i;
}
if (mn!=NMAX) g<<mn<<"\n";
else g<<"-1\n";
f.close();
g.close();
return 0;
}