All pastes #472467 Raw Edit

hcura

public cpp v1 · immutable
·published 2007-05-05 16:31 UTC
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;}