Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <cstring>
- #include <string>
- #include <cctype>
- #include <stack>
- #include <queue>
- #include <list>
- #include <vector>
- #include <map>
- #include <set>
- #include <sstream>
- #include <limits.h>
- #include <stdlib.h>
- #include <cmath>
- #define LL unsigned long long
- using namespace std;
- int n1,n2;
- int cont=1;
- int main() {
- int lcs[110][110];int X[110];int Y[110];
- while(scanf("%d %d",&n1,&n2)){
- if(n1==0 && n2==0) break;
- for(int i=0;i<n1;i++) scanf("%d",&X[i]);
- for(int i=0;i<n2;i++) scanf("%d",&Y[i]);
- for(int i=1;i<=n1;i++){
- lcs[i][0]=0;
- }
- for(int i=0;i<=n2;i++){
- lcs[0][i]=0;
- }
- for(int i=1;i<=n1;i++){
- for(int j=1;j<=n2;j++){
- if(X[i-1]==Y[j-1]){
- lcs[i][j]=1+lcs[i-1][j-1];
- }else lcs[i][j]=max(lcs[i-1][j],lcs[i][j-1]);
- }
- }
- printf("Twin Towers #%d\n",cont);cont++;
- printf("Number of Tiles : %d\n",lcs[n1][n2]);
- printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement