Pagini recente » Rating Velciu Ionut (IoNu-) | Cod sursa (job #552440) | Cod sursa (job #3153668) | Cod sursa (job #638082) | Cod sursa (job #2130176)
#include <iostream>
#include <fstream>
#include <algorithm>
#define INF 99999
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int n, dif, v[5001], S[5001], P[5001];
int main()
{
fin >> n;
for(int i=1; i<=n; i++)
{
fin >> v[i];
S[i]=v[i];
}
sort(S+1,S+n+1);
for(int i=1;i<=n;i++)
{
dif++;
while(S[i]==S[i+1]&&i<=n)
i++;
}
for(int i=1;i<=n;i++)
{
S[i]=1;
P[i]=i;
}
for(int i=2;i<=n;i++)
for(int j=i-1;j>=1;j--)
if(v[j]<v[i]&&S[j]+1>S[i])
{
S[i]=S[j]+1;
P[i]=P[j];
}
int MIN=INF;
for(int i=1;i<=n;i++)
if(S[i]==dif&&i-P[i]+1<MIN)
MIN=i-P[i]+1;
if(MIN!=INF)
fout << MIN;
else
fout << "-1";
return 0;
}