Pagini recente » Cod sursa (job #1189015) | Cod sursa (job #2955997) | Cod sursa (job #371796) | Cod sursa (job #1299244) | Cod sursa (job #2927414)
#include<cstdio>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
FILE*in=fopen("secv.in","r");
FILE*out=fopen("secv.out","w");
const int NMAX=5007,INF=2000000007;
int n,i,v[NMAX],its,itd,hm,ct,lmin=INF;
bool as;
vector<int> w;
map<int,bool> m;
map<int,int> bo;
bool pus()
{
while(hm<ct)
{
itd++;
if(itd>n)
{
return 1;
}
if(bo[v[itd]]==0)
{
hm++;
}
bo[v[itd]]++;
}
as=1;
lmin=min(lmin,itd-its+1);
return 0;
}
int main()
{
fscanf(in,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(in,"%d",&v[i]);
if(m[v[i]]==0)
{
w.push_back(v[i]);
m[v[i]]=1;
ct++;
}
}
its=1;
itd=1;
bo[v[1]]=1;
hm=1;
while(pus()==0)
{
bo[v[its]]--;
if(bo[v[its]]==0)
{
hm--;
}
its++;
}
if(as==0)
{
fprintf(out,"-1");
}
fprintf(out,"%d",lmin);
}