Pagini recente » Cod sursa (job #1331715) | Cod sursa (job #1027120) | Cod sursa (job #385489) | Cod sursa (job #3030327) | Cod sursa (job #1658367)
#include <fstream>
#include <algorithm>
using namespace std;
int n,v[5001],w[5001],k,i,j,minim,x,ok;
ifstream fin ("secv.in");
ofstream fout ("secv.out");
int main (){
fin>>n;
for (i=1;i<=n;i++){
fin>>v[i];
w[i] = v[i];
}
sort (w+1, w+n+1);
k = 1;
// eliminam dublurile
for (i=2;i<=n;i++){
if (w[i] != w[i-1])
w[++k] = w[i];
}
//pe pozitii de la 1 la k vor ramane elementele unice
//x = 1;
minim = 2000000000;
for (i=1;i<=n-k+1;i++){
// fixam inceputul subsirului;
ok = 0;
x = 1;
for (j=i;j<=n;j++)
if (v[j] == w[x]){
x++;
if (x > k){
ok = 1;
break;
}
}
if (ok == 1)
if (j-i+1 < minim){
minim = j-i+1;
}
}
if (minim == 2000000000)
fout<<-1;
else
fout<<minim;
return 0;
}