Advertisement
nguyenvanquan7826

Untitled

Feb 7th, 2013
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <string>
  5. #include <algorithm>
  6.  
  7. #define filein "xauconmax.inp"
  8. #define fileout "xauconmax.out"
  9. using namespace std;
  10.  
  11. void input(string &s1, string &s2)
  12. {
  13. getline(cin,s1);
  14. getline(cin,s2);
  15. }
  16.  
  17. string process(string s1, string s2)
  18. {
  19. int A[s1.length()+1][s2.length()+1];
  20. string s="";
  21. for(int i=0; i<=s2.length() ; i++) A[0][i]=0;
  22. for(int i=0; i<=s1.length() ; i++) A[i][0]=0;
  23. int max1=0;
  24. for(int i=1; i<=s1.length(); i++)
  25. for(int j=1; j<=s2.length(); j++)
  26. if(s1[i-1]==s2[j-1]) A[i][j]=A[i-1][j-1]+1;
  27. else A[i][j]=max(A[i-1][j],A[i][j-1]);
  28.  
  29. int i=s1.length(), j=s2.length();
  30. while (i>=0 && j>=0)
  31. {
  32. if(A[i][j]==A[i-1][j]) i--;
  33. else if(A[i][j]==A[i][j-1]) j--;
  34. else
  35. {
  36. s+=s1[i-1];
  37. i--;
  38. j--;
  39. }
  40. }
  41. reverse(s.begin(),s.end()-1); // dao nguoc xau s
  42. return s;
  43. }
  44. void output(string s)
  45. {
  46. cout<<s<<endl;
  47. }
  48. int main()
  49. {
  50. string s1="",s2="";
  51. input(s1,s2);
  52. output(process(s1,s2));
  53. return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement