Pagini recente » Cod sursa (job #1958676) | Cod sursa (job #1427393) | Cod sursa (job #316626) | Cod sursa (job #541017) | Cod sursa (job #1816474)
#include <cstdio>
using namespace std;
FILE *f, *g;
struct numere
{
int lx, en;
};
numere l[5001];
int n, v[5001], mn = 9999, cnt,dif[5001];
void readFile()
{
f = fopen("secv.in", "r");
fscanf(f, "%d", &n);
int i, j;
bool ok;
for(i = 1; i <= n; i ++)
{
fscanf(f, "%d", &v[i]);
ok = 1;
for(j = 1; (j <= cnt) && (ok == 1); j ++)
{
if(dif[j] == v[i])
ok = 0;
}
if(ok == 1)
dif[++ cnt] = v[i];
}
fclose(f);
}
void solve()
{
l[n].lx = 1;
l[n].en = n;
int i,j;
for(i = n - 1; i >= 1; i --)
{
l[i].lx = 1;
l[i].en = i;
for(j = i + 1; j <= n; j ++)
{
if(v[i] < v[j])
{
if(l[i].lx < l[j].lx + 1)
{
l[i].lx = l[j].lx + 1;
l[i].en = l[j].en;
}
}
}
}
for(i = 1; i <= n; i ++)
{
if(l[i].lx == cnt)
{
if(l[i].en - i + 1 < mn)
mn = l[i].en - i + 1;
}
}
}
void printFile()
{
g = fopen("secv.out", "w");
fprintf(g, "%d\n", mn);
fclose(g);
}
int main()
{
readFile();
solve();
printFile();
return 0;
}