fork download
  1. /*input
  2. 3 3
  3. 1 2 3
  4. 4 5 6
  5. 7 8 9
  6. 1 4 7
  7. 2 5 6
  8. 3 8 9
  9.  
  10. */
  11. #include<cstdio>
  12. #include<vector>
  13. #include<algorithm>
  14. using namespace std;
  15.  
  16. int alln,allq;
  17. int num[300005];
  18. vector <int> V[300005];
  19. bool flag[300005];
  20. int p[300005];
  21.  
  22. int main()
  23. {
  24. scanf("%d%d",&alln,&allq);
  25. for(int i=1;i<=alln;++i){
  26. scanf("%d",&num[i]);
  27. }
  28. for(int i=1;i<=allq;++i){
  29. int u,v;
  30. scanf("%d%d",&u,&v);
  31. if(v == num[alln])
  32. flag[u] = true;
  33. V[v].push_back(u);
  34. }
  35. int cnt =0;
  36. int ans = 0;
  37. for(int i=alln-1;i>=1;--i){
  38. if( flag[num[i]] && cnt == p[num[i]] ){
  39. ans ++;
  40. }
  41. else{
  42. cnt++;
  43. for(int j= 0;j<=V[num[i] ].size();++j){
  44. p[ V[num[i]][j] ]++;
  45. }
  46. }
  47. }
  48. printf("%d",ans);
  49. return 0;
  50. }
Success #stdin #stdout 0s 24904KB
stdin
3 3
3 1 2
1 2
3 1
3 2
stdout
2