rendered paste body#include <stdio.h>#include <stdlib.h>int max(int a,int b){ if(a>b) return a; else return b;}int lcs(int x[],int n,int y[],int m){// int l;// printf("\n PRINT \n");// for(l=0;l<n;l++) printf("%d ",x[l]);// printf("\n");// for(l=0;l<m;l++) printf("%d ",y[l]);// printf("\n END \n"); int cena[n][m]; int i,j; for(i=0;i<n;i++) cena[i][0]=0; for(j=1;j<m;j++) cena[0][j]=0; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(x[i-1]==y[j-1]) cena[i][j]=cena[i-1][j-1]+1; else cena[i][j] = max(cena[i][j-1],cena[i-1][j]); } } return cena[n][m];}int main(){ int n1,n2,x,no=0,tiles; while(1){ scanf("%d %d",&n1,&n2); if(n1==0 && n2==0) break; // end cond no++; int list1[n1]; int list2[n2]; for(x=0;x<n1;x++) scanf("%d",&list1[x]); for(x=0;x<n2;x++) scanf("%d",&list2[x]); tiles=lcs(list1,n1,list2,n2); //printf("PRINT \n"); //for(x=0;x<n1;x++) printf("%d ",list1[x]); //printf("\n"); //for(x=0;x<n2;x++) printf("%d ",list2[x]); //printf("END \n"); printf("Twin Towers #%d\n",no); printf("Number of Tiles : %d\n",tiles); printf("\n"); } return 0;}