Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. int odw[1000004];
  5. vector <int> G[1000004];
  6. int tab[1000004];
  7. queue <int> Q;
  8. int n,m,czas,u,a,b, wynik=INT_MAX;
  9.  
  10. bool pr;
  11. void wprowadz()
  12. {
  13. cin>>n>>m;
  14. for (int i=1; i<=n; i++)
  15. cin>>tab[i];
  16.  
  17. for (int i=1; i<=m; i++)
  18. {
  19. cin>>a>>b;
  20. G[a].push_back(b);
  21. G[b].push_back(a);
  22. }
  23. }
  24. void BFS (int w)
  25. {
  26. odw[w]=1;
  27. Q.push(w);
  28. while(!Q.empty())
  29. {
  30. int v=Q.front();
  31. Q.pop();
  32. if (pr==true) return;
  33. if (tab[v]==1) {pr=true; wynik=min(wynik, czas); return;}
  34. czas++;
  35. for (int i=0; i<G[v].size(); i++)
  36. {
  37. int u=G[v][i];
  38. if (odw[u]==0)
  39. {
  40. odw[u]=1;
  41. Q.push(u);
  42. }
  43. }
  44. }
  45. }
  46. int main()
  47. {
  48. cin.tie(0);
  49. cout.tie(0);
  50. ios_base::sync_with_stdio(0);
  51. wprowadz();
  52.  
  53. for (int j=1; j<=n; j++)
  54. {
  55. czas=0;
  56. if (tab[j]==0) BFS(j);
  57. pr=false;
  58. }
  59. cout<<wynik;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement