Pagini recente » Cod sursa (job #693195) | Cod sursa (job #2944717) | Cod sursa (job #1090435) | Rating ivancea luminita (luminitaivancea98) | Cod sursa (job #2158467)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int v[5001], u[5001], q[5001];
pair <int, int> aux[5001];
int main() {
int n;
f>>n;
for (int i=0; i<n; i++){
f>>aux[i].first;
aux[i].second=i;
}
sort (aux, aux+n);
int nrv=1, nrd=0;
v[aux[0].second]=nrv;
for (int i=1; i<n; i++){
if (aux[i].first!=aux[i-1].first){
nrv++;
}
v[aux[i].second]=nrv;
}
int st=0, dr=-1, lmin=n+1;
for (int i=0; i<=nrv; i++){
u[i]=-1;
}
for (int i=0; i<n; i++){
q[++dr]=i;
if (u[v[i]]==-1){
nrd++;
}
u[v[i]]=i;
while (st!=dr && u[v[q[st]]]!=q[st]){
st++;
}
if (nrd==nrv){
lmin=min(lmin, i-q[st]+1);
}
}
g<<lmin;
return 0;
}