#include<bits/stdc++.h>
using namespace std;
string A,B,C;
int F[1001][1001][1001];
int main(){
getline(cin, A);
getline(cin, B);
getline(cin, C);
for (int i = 1;i<=A.size();i++){
for (int j = 1;j<=B.size();j++){
for (int t = 1;t<=C.size();t++){
if (A[i-1] == B[j-1] && B[j-1] == C[t-1]){
F[i][j][t] = F[i-1][j-1][t-1] + 1;
}else{
F[i][j][t] = max(F[i-1][j][t],max( F[i][j-1][t] , F[i][j][t-1]));
}
}
}
}
int max = F[1][1][1];
for (int i = 1;i<=A.size();i++){
for (int j = 1;j<=B.size();j++){
for (int t = 1;t<=C.size();t++){
if(max < F[i][j][t]) max = F[i][j][t];
}
}
}
cout << max;
}
Tìm xâu con chung của 3 dãy - mình không chạy code được nhưng không tìm ra lỗi ạ
Bạn muốn hỏi hay chia sẻ?
1 Like
:)). Là sao cha? Bạn gặp khó khăn gì/