Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  q.cpp
Language: C/C++
Code:
#include <iostream>
#include<fstream>
#include<string>
using namespace std;

 

int main(int argc,char *argv[])
{
   if (argc<2)
          return 0;
     
     ifstream filein;
     ofstream fileout;
     char *input = argv[1];
     char *output = argv[2];
     filein.open("input.txt");
     fileout.open("output.txt");
     if (filein == NULL || fileout == NULL)
          return 0;
    string a;
    string b;
    string c;
    while(!filein.eof())
    {
        getline(filein,a,'\n');
        getline(filein,b,'\n');
    }
    int m=a.length();
    int n=b.length();
      int L[m+1][n+1];
     int result=0;
   for (int i=0; i<=m; i++)
   {
     for (int j=0; j<=n; j++)
     {
       if (i == 0 || j == 0)
         L[i][j] = 0;
       else if (a[i-1] == b[j-1])
       {
         L[i][j] = L[i-1][j-1] + 1;
         result = max(result, L[i][j]);
     }
       else
       {
         L[i][j] = 0;
     }
     }
   }
 
   
   int index = L[m][n];
 
   char lcs[index+1];
   lcs[index] = '\0'; 
 
   int i = m, j = n;
   while (i > 0 && j > 0)
   {
      if (a[i-1] == b[j-1])
      {
          lcs[index-1] = a[i-1]; 
          i--; j--; index--;     
      }

      else if (L[i-1][j] > L[i][j-1])
         i--;
      else
         j--;
   }

   fileout<<lcs<<" "<<result;
  return 0;
   
}
Comments: