_Bad_Liar_

Untitled

Nov 23rd, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n1, n2, n3;
  6. cin >> n1;
  7. int a[n1], b[n2], c[n3];
  8. for(int i = 0; i < n1; i++) {
  9. cin >> a[i];
  10. }
  11. cin >> n2;
  12. for(int i = 0; i < n2; i++){
  13. cin >> b[i];
  14. }
  15. cin >> n3;
  16. for(int i = 0; i < n3; i++)
  17. cin >> c[i];
  18.  
  19. int dp[n1+1][n2+1][n3+1];
  20.  
  21. for(int i = 0; i <= n1; i++)
  22. for(int j = 0; j <= n2; j++)
  23. for(int k = 0; k <= n3; k++) {
  24. if (i == 0 || k == 0 || j == 0)
  25. dp[i][j][k] = 0;
  26. else if(a[i - 1] == b[j - 1] && a[i - 1] == c[k - 1] && b[j-1] == c[k -1])
  27. dp[i][j][k]=dp[i-1][j-1][k-1]+1;
  28. else {
  29. dp[i][j][k] = max(max(dp[i-1][j][k], dp[i][j-1][k]), dp[i][j][k-1]);
  30. }
  31. }
  32.  
  33. cout << dp[n1][n2][n3];
  34. return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment