Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <bitset>
- #include <vector>
- # define N 100005
- using namespace std;
- ifstream fin("Ohoo.in");
- ofstream fout("Ohoo.out");
- vector<pair<int, int> >v[N];
- bitset<N> viz;
- bool t;
- int n,m;
- int mz;
- void Citire()
- {
- int x,y,c;
- fin>>n>>m;
- for(int i=1;i<=m;i++)
- {
- fin>>x>>y>>c;
- v[x].push_back(make_pair(y,c));
- v[y].push_back(make_pair(x,c));
- if(c>mz)mz=c;
- }
- }
- void DFS(int nod, int d)
- {
- if(nod==n)t=1;
- else{
- viz[nod]=1;
- for(auto i:v[nod])
- if(!t && i.second<=d && !viz[i.first])
- DFS(i.first,d);
- }
- }
- void CB()
- {
- int st=1, dr=mz,sol=mz;
- while(st<=dr)
- {
- int mij=(st+dr)/2;
- for(int i=1;i<=n;i++) viz[i]=0;
- DFS(1,mij);
- if(t){sol=mij, t=0; dr=mij-1;}
- else st=mij+1;
- }
- fout<<sol;
- }
- int main()
- {
- Citire();
- CB();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment