Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define in f
  4. #define out cout
  5.  
  6.  
  7. ifstream f ("dragoni.in");
  8. ofstream g ("dragoni.out");
  9.  
  10. int p;
  11. int n;
  12. int m;
  13. int Dmax[50010];
  14. int A[50010];
  15. int B[50010];
  16. int D[50010];
  17. int viz[50010];
  18. int node;
  19. int rez;
  20. queue <int> q;
  21. vector <int > stl[1000];
  22.  
  23.  
  24.  
  25. int main() {
  26.  
  27. in >> p;
  28. in >> n;
  29. in >> m;
  30. for(int i = 1; i <= n; i++) {
  31. in >> Dmax[i];
  32. }
  33. for(int i = 1; i <= m; i++) {
  34. in >> A[i];
  35. in >> B[i];
  36. in >> D[i];
  37. stl[A[i]].push_back(B[i]);
  38. stl[B[i]].push_back(A[i]);
  39. }
  40. rez = Dmax[1];
  41. q.push(1);
  42. viz[1]++;
  43. while(q.empty() == false) {
  44. node = q.front();
  45. q.pop();
  46. for(int i = 0; i < stl[node].size(); i++) {
  47. if((viz[stl[node][i]] == 0) && (D[stl[node][i]] <= Dmax[node])) {
  48. viz[stl[node][i]]++;
  49. q.push(stl[node][i]);
  50. }
  51. }
  52. }
  53. for(int i = 1; i <= n; i++) {
  54. if(viz[i] == 1) {
  55. rez = max(rez,Dmax[i]);
  56. }
  57. }
  58. out << rez;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement