Pagini recente » Cod sursa (job #2496530) | Cod sursa (job #437245) | Cod sursa (job #2571505) | Cod sursa (job #724635) | Cod sursa (job #946497)
Cod sursa(job #946497)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int n,a[5005],v[5005],nb[5005],k,minimum=5005,poz[5005],len;
void read()
{
int i;
f>>n;
for(i=0;i<n;i++)
{
f>>a[i];
v[a[i]]++;
if(v[a[i]]==1)
nb[k++]=a[i];
}
sort(nb,nb+k);
for(i=0;i<n;i++)
if(a[i]==nb[0])
poz[len++]=i;
}
void calculate()
{
/*while(i<n)
{
if(a[i]==searched)
{
searched=nb[j++];
if(j>k)
minimum=i;
}
i++;
}
limit=i;
if(minimum==5005)
{
g<<-1<<"\n";
return;
}
i=1;
limit++;
j=0;
while(i<n)
{
if(a[i-1]==nb[0])
searched=nb[0];
}*/
int i;
for(i=0;i<len;i++)
{
int j=poz[i]+1,ind=1,searched=nb[ind];
bool yes=0;
while(j<n)
{
if(a[j]==searched)
{
ind++;
searched=nb[ind];
if(ind>=k)
{
if(minimum>j-i)
minimum=j-i;
yes=1;
}
}
j++;
}
if(yes==0)
break;
}
if(minimum==5005)
g<<-1<<"\n";
else
g<<minimum<<"\n";
}
int main()
{
read();
calculate();
}