Pagini recente » Cod sursa (job #2007115) | Cod sursa (job #2835618) | Cod sursa (job #2107054) | Cod sursa (job #561948) | Cod sursa (job #384472)
Cod sursa(job #384472)
#include<stdio.h>
#include<stdlib.h>
#include<algo.h>
using namespace std;
const int NMAX=100001;
int tcmp[NMAX],perm[NMAX];//path[NMAX],
int check[2000001];
int mat[100000][100000];
int main()
{
int n,i,j,min=1<<30,max=0,nr=0;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;++i)
{
scanf("%d",tcmp+i);
perm[i]=tcmp[i];
}
sort(perm,perm+n);
for(i=0;i<n;++i)
for(j=0;j<n;++j)
if(tcmp[i]==perm[j])
{
if(!check[perm[j]])
{
mat[i][j]=mat[i-1][j-1]+1;
check[perm[j]]=1;
// path[nr++]=tcmp[i];
}
else
mat[i][j]=(mat[i-1][j]<mat[i][j-1])?mat[i][j-1]:mat[i-1][j];
}
else
mat[i][j]=(mat[i-1][j]<mat[i][j-1])?mat[i][j-1]:mat[i-1][j];
printf("%d\n",mat[n-1][n-1]);
//for(i=0;i<nr;++i)
// printf("%d ",path[i]);
return 0;
}