Pagini recente » Cod sursa (job #182528) | Cod sursa (job #1808511) | Cod sursa (job #3271504) | Cod sursa (job #2491818) | Cod sursa (job #678249)
Cod sursa(job #678249)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,i,j,best=1<<30,V[5010],unic[5010],elem[5010],S[5010][5010];
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&V[i]);
unic[i]=V[i];
}
sort(unic+1,unic+n+1);
for(i=1;i<=n;i++)
{
for(;unic[i]==unic[i+1];i++);
elem[++m]=unic[i];
}
}
void solve()
{
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(V[i]==elem[j])
{
if(j==1){S[i][j]=1;continue;}
if(S[i-1][j-1])S[i][j]=S[i-1][j-1]+1;
}
if(S[i-1][j]&&S[i][j])S[i][j]=min(S[i][j],S[i-1][j]);
else if(S[i-1][j])S[i][j]=S[i-1][j]+1;
}
if(S[i][m]&&best>S[i][m])best=S[i][m];
}
printf("%d\n",best);
}