Pagini recente » Cod sursa (job #36276) | Rating Lupu Cezar (LupuCezar) | Cod sursa (job #2800587) | Cod sursa (job #619000) | Cod sursa (job #1660297)
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <fstream>
using namespace std;
int numere[5001] = {0};
int diferent[5001] = {0};
int N;
int make_different(int* a, int Num)
{
int h = 1;
sort(a, a + Num - 1);
diferent[0] = numere[0];
for(int i = 1; i < Num; i++)
{
if(numere[i] != numere[i-1])
diferent[h++] = numere[i];
}
/*
for(int o = 0; o < h; o++)
cout << diferent[o] << " ";
*/
return h;
}
int solve_me(int a)
{
int my_min = 999999999;
for(int i = 0; i < N - a - 1; i++)
{
int temp = 0;
bool over = false;
int j;
for(j = i; j < N; j++)
{
if(numere[j] == diferent[temp])
{
temp++;
if(temp >= a)
{
over = true;
break;
}
}
}
if(over)
{
if(j - i + 1 < my_min)
{
my_min = j - i + 1;
}
}
}
//cout << endl << my_min;
return my_min;
}
int main()
{
freopen("secv.in", "r", stdin);
//freopen("secv.out", "r", stdout);
ofstream out("secv.out");
scanf("%d", &N);
for(int i = 0; i < N; i++)
{
scanf("%d", &numere[i]);
diferent[i] = numere[i];
}
int y = make_different(numere, N);
int z = solve_me(y);
out << z;
out.close();
//printf("%d", z);
fclose(stdin);
//fclose(stdout);
return 0;
}