fork download
  1. #include<bits/stdc++.h>
  2. #define mod 1000000007
  3. #define ll long long
  4. #define p(x) pair<x,x>
  5. #define v(x) vector<x>
  6. #define Tree node*
  7. #define sz(a) a.size()
  8. #define x first
  9. #define y second
  10. #define pb(a) push_back(a)
  11. #define pf(a) push_front(a)
  12. #define FOR(i, l, r) for (int i = l; i < r; i++)
  13. #define FORX(i, l, r, x) for (int i = l; i < r; i += x)
  14. #define FORD(i, l, r) for (int i = l; i >= r; i--)
  15. #define correct(x, y, n, m) 0 <= (x)&&(x) < (n)& & 0 <= (y)&&(y) < (m)
  16. #define cin(M, n) FOR(i, 0, n)cin >> M[i]
  17. #define cout(M, n) FOR(i, 0, n)cout << M[i] << " "
  18. #define rs(M, x) memset(M, x, sizeof(M))
  19. #define reset() FOR(i, 0, 1001)A[i].clear(), check[i] = false
  20. #define faster() cin.tie(0); ios_base::sync_with_stdio(false); cout.tie(0);
  21. #define run() int t; cin >> t; while (t--)
  22. #define pq(x) priority_queue<x>
  23. #define neg_pq(x) priority_queue<x, vector<x>, greater<x>>
  24. #define all(M) M.begin(), M.end()
  25. using namespace std;
  26.  
  27. //_______________________NGUYỄN_NGỌC_TOÀN_______________________//
  28.  
  29. int main() {
  30. faster();
  31. run() {
  32. string a, b; cin >> a >> b;
  33. int dp[1001][1001];
  34. FOR(i, 0, sz(a) + 1) {
  35. FOR(j, 0, sz(b) + 1) {
  36. if (i == 0 || j == 0)dp[i][j] = 0;
  37. else {
  38. if (a[i - 1] == b[j - 1])dp[i][j] = dp[i - 1][j - 1] + 1;
  39. else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
  40. }
  41. }
  42. }
  43. cout << dp[sz(a)][sz(b)] << endl;
  44. }
  45. }
  46.  
  47. //__________________________B20DCPT173__________________________//
Success #stdin #stdout 0.01s 5268KB
stdin
1
tinhoccosovui
chantinhocthichsudunggame
stdout
9