LNACS - VOI10 - Dãy con chung không liền kề dài nhất

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>

int max(int a,int b)
{
    if(a<b)
        return b;
        return a;
}
main()

{
      int a[1001],b[1001],f[1001][1001],m,n;
      scanf("%d %d",&m,&n);
      for(int i=1;i<=m;i++)
      {
          scanf("%d",&a[i]);
          f[i][0]=0;
      }
      for(int j=1;j<=n;j++)
      {
          scanf("%d",&b[j]);
          f[0][j]=0;
      }
      for(int i=1;i<=m;i++)
          for(int j=1;j<=n;j++)
              {
              if(a[i]==b[j])
                  f[i][j]=f[i-2][j-2]+1;
              else f[i][j]=max(f[i-1][j],f[i][j-1]);
              }
      printf("%d",f[m][n]);
     // getch();
}
      

Download