#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include <ctime>
using namespace std;
char s1[1010],s2[1010],res[1010];
int icount[1010],jcount[1010],ary[1010][1010];
int lcs(int m,int n)
{
// ary[m+1][n+1];
for(int i=0; i<=m; i++)
{
for(int j=0; j<=n; j++)
{
if(i==0||j==0) ary[i][j]=0;
else if(s1[i-1]==s2[j-1]) ary[i][j]=ary[i-1][j-1]+1;
else ary[i][j]=max(ary[i-1][j],ary[i][j-1]);
}
}
return ary[m][n];
}
void printlcs(int m,int n)
{
int i=m,j=n;
int index=-1;
while(true)
{
if(s1[i-1]==s2[j-1])
{
index++;
icount[index]=i;
jcount[index]=j;
res[index]=s1[i-1];
i--;
j--;
}
else
{
if( ary[i-1][j]>ary[i][j-1]) i--;
else j--;
}
if(i==0||j==0) break;
}
for(int i=index; i>=0; i--)
{
printf("%c %d %d\n",res[i],icount[i],jcount[i]);
}
}
int main()
{
int test;
scanf("%d",&test);
for(int cas=1; cas<=test; cas++)
{
int l1,l2;
scanf("%d%s%d%s",&l1,s1,&l2,s2);
int res=lcs(l1,l2);
if(res==0||res==1)
{
printf("case %d N\n",cas);
continue;
}
printf("case %d Y\n",cas);
cout<<res<<endl;
printlcs(l1,l2);
}
return 0;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include <ctime>
using namespace std;
char s1[1010],s2[1010],res[1010];
int icount[1010],jcount[1010],ary[1010][1010];
int lcs(int m,int n)
{
// ary[m+1][n+1];
for(int i=0; i<=m; i++)
{
for(int j=0; j<=n; j++)
{
if(i==0||j==0) ary[i][j]=0;
else if(s1[i-1]==s2[j-1]) ary[i][j]=ary[i-1][j-1]+1;
else ary[i][j]=max(ary[i-1][j],ary[i][j-1]);
}
}
return ary[m][n];
}
void printlcs(int m,int n)
{
int i=m,j=n;
int index=-1;
while(true)
{
if(s1[i-1]==s2[j-1])
{
index++;
icount[index]=i;
jcount[index]=j;
res[index]=s1[i-1];
i--;
j--;
}
else
{
if( ary[i-1][j]>ary[i][j-1]) i--;
else j--;
}
if(i==0||j==0) break;
}
for(int i=index; i>=0; i--)
{
printf("%c %d %d\n",res[i],icount[i],jcount[i]);
}
}
int main()
{
int test;
scanf("%d",&test);
for(int cas=1; cas<=test; cas++)
{
int l1,l2;
scanf("%d%s%d%s",&l1,s1,&l2,s2);
int res=lcs(l1,l2);
if(res==0||res==1)
{
printf("case %d N\n",cas);
continue;
}
printf("case %d Y\n",cas);
cout<<res<<endl;
printlcs(l1,l2);
}
return 0;
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন