Pagini recente » Cod sursa (job #54782) | Cod sursa (job #1684782) | Cod sursa (job #1992784) | Cod sursa (job #2315084) | Cod sursa (job #2892632)
#import<fstream>
#import<algorithm>
#import<cstring>
#import<vector>
#import<set>
#import<queue>
#import<set>
#import<bitset>
using namespace std;
ifstream cin("secv.in");
ofstream cout("secv.out");
main()
{
int n;
cin>>n;
vector<int>a(n+1,0);
vector<int>loc,nr;
set<int>v;
for(int i=1;i<=n;i++)
{
cin>>a[i];
v.insert(a[i]);
}
while(v.size()!=0)
{
loc.push_back(-1);
nr.push_back(*v.begin());
v.erase(v.begin());
}
int rez=2e9;
for(int i=1;i<=n;i++)
{
int st=1,dr=nr.size(),lc=0;
while(st<=dr)
{
int m=(st+dr)>>1;
if(nr[m]>a[i])
{
dr=m-1;
}
else if(nr[m]<a[i])
{
st=m+1;
}
else
{
lc=m;
break;
}
}
if(!lc)
{
loc[lc]=i;
}
else if(loc[lc-1]!=-1)
{
loc[lc]=loc[lc-1];
}
if(lc==nr.size()-1 && loc[lc]!=-1)
{
rez=min(rez,i-loc[lc]+1);
}
}
cout<<rez;
}