fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. string x, y;
  7. int A[2][1001];
  8. while (cin >> x >> y )
  9. {
  10. for (int i = 0; i < 2; i++){
  11. for (int j = 0; j < 1001; j++){
  12. A[i][j] = 0;
  13. }
  14. }
  15. for (int i = 0; i < x.size(); i++){
  16. for (int j = 0; j < y.size(); j++){
  17. if (x[i] == y[j]) A[i % 2][(j + 1)] = 1 + A[(i + 1) % 2][j];
  18. else A[i % 2][j + 1] = max(A[(i + 1) % 2][j + 1], A[i % 2][j]);
  19. }
  20. }
  21. cout << A[(x.size() + 1) % 2][y.size()] << endl;
  22. }
  23. return 0;
  24. }
Success #stdin #stdout 0s 4460KB
stdin
AAABBB ABABAB
AXYAAZ CCCXCCCYCCCZCC
ABCDE EDCBA
stdout
4
3
1