LCS
for( i=1;a[i];i++){
for(j=1;b[j];j++){
if(a[i]==b[j])dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=MAX(dp[i][j-1],dp[i-1][j]);
}
}
LIS
for(int i=1;i<=n;++i){
d[i]=1;
for(int j=1;j<i;++j)
if(a[i]>a[j]&&d[i]+1>d[j])d[i]=d[j]+1;
}