Pagini recente » Cod sursa (job #2457348) | Monitorul de evaluare | Cod sursa (job #2864037) | Cod sursa (job #3282644) | Cod sursa (job #33760)
Cod sursa(job #33760)
#include<fstream.h>
long long n,a[5000],i,b[5000],min,c[5000],l,k=1,j,gasit=0,t;
void quik(int p,int q)
{
int aux,i,j,t;
if(p<q)
{
i=p;
j=q;
t=1;
do
{
if(a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
t=!t;
}
if(t)
j--;
else
i++;
}while(i!=j);
quik(p,i-1);
quik(i+1,q);
}
}
int main()
{
ifstream f("secv.in");
ofstream g("secv.out");
f>>n;
for(i=1;i<=n;i++)
f>>b[i];
for(i=1;i<=n;i++)
{
gasit=0;
for(j=0;j<k;j++)
if(a[j]==b[i])
gasit=1;
if(gasit==0)
{
a[k]=b[i];
k++;
}
}
quik(1,k-1);
for(i=1;i<n-k+2;i++)
{
gasit=0;
j=i+1;
if(b[i]==a[1])
{
t=2;
while(j<=n&&!gasit)
{
if(b[j]==a[t])
t++;
if(t==k)
{
c[l]=j-i+1;
l++;
}
j++;
}
}
}
if(c[0]==0)
g<<"-1";
else
{
min=c[0];
for(i=1;i<l;i++)
if(a[i]<min)
min=a[i];
g<<min;
}
return 0;
}