nicuvlad76

Untitled

Dec 10th, 2022
685
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #include <fstream>
  2. #include <bitset>
  3. #include <vector>
  4. # define N 100005
  5. using namespace std;
  6. ifstream fin("Ohoo.in");
  7. ofstream fout("Ohoo.out");
  8. vector<pair<int, int> >v[N];
  9. bitset<N> viz;
  10. bool t;
  11. int n,m;
  12. int mz;
  13. void Citire()
  14. {
  15.     int x,y,c;
  16.     fin>>n>>m;
  17.     for(int i=1;i<=m;i++)
  18.     {
  19.         fin>>x>>y>>c;
  20.         v[x].push_back(make_pair(y,c));
  21.         v[y].push_back(make_pair(x,c));
  22.         if(c>mz)mz=c;
  23.     }
  24. }
  25.  
  26. void DFS(int nod, int d)
  27. {
  28.     if(nod==n)t=1;
  29.     else{
  30.         viz[nod]=1;
  31.         for(auto i:v[nod])
  32.             if(!t && i.second<=d && !viz[i.first])
  33.               DFS(i.first,d);
  34.     }
  35. }
  36. void CB()
  37. {
  38.     int st=1, dr=mz,sol=mz;
  39.     while(st<=dr)
  40.     {
  41.         int mij=(st+dr)/2;
  42.         for(int i=1;i<=n;i++) viz[i]=0;
  43.         DFS(1,mij);
  44.         if(t){sol=mij, t=0; dr=mij-1;}
  45.         else st=mij+1;
  46.     }
  47.     fout<<sol;
  48. }
  49. int main()
  50. {
  51.   Citire();
  52.   CB();
  53.   return 0;
  54. }
  55.  
  56.  
Advertisement
Add Comment
Please, Sign In to add comment