Pagini recente » Cod sursa (job #2272159) | Cod sursa (job #450183) | Cod sursa (job #425909) | Cod sursa (job #866920) | Cod sursa (job #784589)
Cod sursa(job #784589)
#include <fstream>
#define DIM 5010
using namespace std;
struct punct {
int v;
int p;
};
int cmpv(punct a, punct b) {
return a.v<b.v;
}
int cmpp(punct a, punct b) {
return a.p<b.p;
}
int N, i, nv, vc, minim, maxv, j;
punct V[DIM];
int main() {
ifstream f("secv.in");
ofstream g("secv.out");
f>>N;
for (i=1;i<=N;i++) {
f>>V[i].v;
V[i].p = i;
}
sort(V+1, V+N+1, cmpv);
nv = 1;
vc = V[1].v;
V[1].v = nv;
for (i=2;i<=N+1;i++)
if (V[i].v == vc)
V[i].v = nv;
else {
vc = V[i].v;
nv++;
V[i].v = nv;
}
maxv = nv-1;
sort(V+1, V+N+1, cmpp);
minim = N+2;
for (i=1;i<=N;i++) {
if (V[i].v == 1) {
nv = 2;
for (j=i+1;j<=N;j++)
if(V[j].v == nv) {
nv++;
if (nv == maxv+1) {
if (j-i+1 < minim)
minim = j-i+1;
}
}
}
}
if (minim == N+2)
g<<-1;
else
g<<minim;
return 0;
}