Pagini recente » Cod sursa (job #380022) | Cod sursa (job #1038154) | Cod sursa (job #2665271) | Cod sursa (job #2161785) | Cod sursa (job #558091)
Cod sursa(job #558091)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
int n,v[50005],rez[5005],maxim=0;
pair <int, int> aux[50005];
void citire(){
int i,val=1,aux1,minim;
in>>n;
minim=10000000;
for(i=1;i<=n;i++){
in>>aux[i].first;
aux[i].second=i;
}
sort( &aux[1], &aux[n+1]);
v[aux[1].second]=val;
aux1=aux[1].first;
for(i=2;i<=n;i++){
if(aux[i].first!=aux1){
val++;
v[aux[i].second]=val;
aux1=aux[i].first;
continue;
}
v[aux[i].second]=val;
}
maxim=val;
for(i=1;i<=n;i++){
if(v[i]==1){
rez[1]=i;
continue;
}
rez[v[i]]=rez[v[i]-1];
if(v[i]==val){
if(rez[v[i]]!=0 && i-rez[v[i]]+1<minim){
minim=i-rez[v[i]]+1;
}
}
}
out<<minim;
}
int main(){
citire();
return 0;
}