Pagini recente » Cod sursa (job #3171474) | Cod sursa (job #2295888) | Cod sursa (job #1297251) | Cod sursa (job #1590212) | Cod sursa (job #1727351)
#include <algorithm>
#include <fstream>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int v[5001], w[5001], n, m, minim=1<<30;
void citire() {
fin >> n;
m = n;
for (int i=1; i<=n; i++) {
fin >> v[i];
w[i] = v[i];
}
}
void ordonare() {
sort(w+1, w+m+1);
for (int i=1; i<m; i++) {
if (w[i] == w[i+1]) {
for (int j=i+1; j<m; j++)
w[j] = w[j+1];
m--;
i--;
}
}
}
void rezolvare() {
int i=1, j, nr;
while (i <= n) {
nr = 1;
if (v[i] == w[nr]) {
nr++;
j = i + 1;
while (j <= n && nr <= m) {
if (v[j] == w[nr])
nr++;
j++;
}
j--;
if (nr==m+1 && j-i+1<minim) {
minim = j - i + 1;
}
}
i++;
}
}
int main()
{
citire();
ordonare();
rezolvare();
if (minim == 1<<30)
fout << -1;
else
fout << minim;
return 0;
}