fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. int main()
  5. {
  6. ll n,m,k,i;
  7. cin>>n>>m>>k;
  8. set< ll > A[n+1];
  9. for(i=0;i<m;i++)
  10. {
  11. ll u,v;
  12. cin>>u>>v;
  13. A[u].insert(v);
  14. A[v].insert(u);
  15. }
  16. ll visited[n+1];
  17. for(i=1;i<=n;i++)
  18. {
  19. visited[i]=-1;
  20. }
  21. queue< pair< ll,ll > > q;
  22. for(i=0;i<k;i++)
  23. {
  24. ll r;
  25. cin>>r;
  26. q.push({r,0});
  27. visited[r]=0;
  28. }
  29. ll ans=-1;
  30. bool flag=false;
  31. while(!q.empty())
  32. {
  33. pair< ll,ll > m=q.front();
  34. q.pop();
  35. ans=m.second;
  36. for(auto it: A[m.first])
  37. {
  38. if(visited[it]==-1)
  39. {
  40. q.push({it,m.second+1});
  41. visited[it]=m.second+1;
  42. A[it].erase(m.first);
  43. }
  44. else
  45. {
  46. ans=m.second;
  47. flag=true;
  48. break;
  49. }
  50. }
  51. if(flag)
  52. {
  53. break;
  54. }
  55. }
  56. ll sol=0;
  57. for(i=1;i<=n;i++)
  58. {
  59. if(visited[i]>=0&&visited[i]<=ans)
  60. {
  61. sol++;
  62. }
  63. }
  64. cout<<sol<<endl;
  65. return 0;
  66. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
0