Pagini recente » Borderou de evaluare (job #475198) | Borderou de evaluare (job #2241937) | Borderou de evaluare (job #1446188) | Borderou de evaluare (job #2657492) | Cod sursa (job #782501)
Cod sursa(job #782501)
#include <fstream>
#include <algorithm>
#include <vector>
#define MAX 8192
#define INF 0x3f3f3f3f
using namespace std;
int v[MAX], aux[MAX], norm[MAX], n, minim = INF;
void normalize()
{
sort(aux + 1, aux + n + 1);
int j = 0; aux[0] = -1;
for(int i = 1; i <= n; i++)
{
if(aux[i] != aux[i - 1])
aux[++j] = aux[i];
}
aux[0] = j;
}
int main()
{
ifstream in("secv.in"); in>>n;
for(int i = 1; i <= n; i++)
{
in>>v[i]; aux[i] = v[i];
} in.close();
normalize();
for(int i = 1; i <= n - aux[0] + 1; i++)
{
if(v[i] == aux[1])
{
int j = 0, poz = 2;
for(j = i + 1; j <= n && poz <= aux[0]; j++)
if(v[j] == aux[poz])
poz++;
if(poz > aux[0])
minim = min(minim, j - i);
}
}
ofstream out("secv.out");
out<<(minim == INF ? -1 : minim);
out.close();
return 0;
}