fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4. int n,m;
  5. cin>>n>>m;
  6. vector<int> a(n), b(m);
  7. vector<int> pre(m),suf(m);
  8. for(int i=0;i<n;i++){
  9. cin>>a[i];
  10. }
  11. for(int i=0;i<m;i++){
  12. cin>>b[i];
  13. }
  14. int j=0;
  15. for(int i=0;i<n;i++){
  16. if(a[i]==b[j]){
  17. pre[j]=i;
  18. j++;
  19. }
  20. if(j==m){
  21. break;
  22. }
  23. }
  24. j=m-1;
  25. for(int i=n-1;i>=0;i--){
  26. if(a[i]==b[j]){
  27. suf[j]=i;
  28. j--;
  29. }
  30. if(j==-1){
  31. break;
  32. }
  33. }
  34. int ans=0;
  35. for (int i = 0; i < m; i++) {
  36. int l = (i > 0) ? pre[i - 1] : -1; // Handling edge case
  37. int r = (i < m - 1) ? suf[i + 1] : n; // Handling edge case
  38. if (l < r) {
  39. ans++;
  40. }
  41. }
  42. cout<<ans;
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 5284KB
stdin
9 2
1 2 5 8 8 6 5 4 3
5 5
stdout
2