Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- int n1, n2, n3;
- cin >> n1;
- int a[n1], b[n2], c[n3];
- for(int i = 0; i < n1; i++) {
- cin >> a[i];
- }
- cin >> n2;
- for(int i = 0; i < n2; i++){
- cin >> b[i];
- }
- cin >> n3;
- for(int i = 0; i < n3; i++)
- cin >> c[i];
- int dp[n1+1][n2+1][n3+1];
- for(int i = 0; i <= n1; i++)
- for(int j = 0; j <= n2; j++)
- for(int k = 0; k <= n3; k++) {
- if (i == 0 || k == 0 || j == 0)
- dp[i][j][k] = 0;
- else if(a[i - 1] == b[j - 1] && a[i - 1] == c[k - 1] && b[j-1] == c[k -1])
- dp[i][j][k]=dp[i-1][j-1][k-1]+1;
- else {
- dp[i][j][k] = max(max(dp[i-1][j][k], dp[i][j-1][k]), dp[i][j][k-1]);
- }
- }
- cout << dp[n1][n2][n3];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment