Pagini recente » Cod sursa (job #2598946) | Cod sursa (job #1506653) | Cod sursa (job #140007) | Cod sursa (job #1098792) | Cod sursa (job #2131105)
#include <bits/stdc++.h>
using namespace std;
const int nmax = 5005;
int v[1+nmax],aux[1+nmax],dp[1+nmax],start[1+nmax];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n;
cin >> n;
int nrmin = 2000000005;
for(int i = 1;i <= n;i ++)
{
cin >> v[i];
aux[i] = v[i];
if(v[i] < nrmin)
nrmin = v[i];
start[i] = i;
}
sort(aux+1,aux+n+1);
int nr = 1;
for(int i = 2;i <= n;i ++)
if(aux[i] != aux[i-1])
nr ++;
for(int i = 1;i <= n;i ++)
if(v[i] == nrmin)
dp[i] = 1;
for(int i = 1;i <= n;i ++)
{
for(int j = i-1;j >= 1;j --)
{
if(v[j] < v[i] && dp[j] + 1 > dp[i])
{
dp[i] = dp[j]+1;
start[i] = start[j];
}
}
}
int sol = 5005;
for(int i = 1;i <= n;i ++)
{
if(dp[i] == nr && i-start[i]+1 < sol)
sol = i-start[i]+1;
}
cout << sol;
return 0;
}