Pagini recente » Cod sursa (job #1435347) | Cod sursa (job #251631) | Cod sursa (job #3285500) | Cod sursa (job #2885863) | Cod sursa (job #2229738)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("pscnv.in");
ofstream fout ("pscnv.out");
const int NMAX = 100005;
int n , m , x , y;
vector < pair < int , int > > L[NMAX];
queue < int > Q;
bitset < NMAX > viz;
inline bool CHECK(int val)
{
int aux;
Q . push(x);
viz[x] = true;
while(! Q . empty())
{
aux = Q . front();
Q . pop();
for(auto it : L[aux])
if(!viz[it . first] && it . second <= val)
{
if(it . first == y)
return true;
Q . push(it . first);
viz[it . first] = true;
}
}
return false;
}
int main()
{
int X , Y , k , left , middle , poz , right;
fin >> n >> m >> x >> y;
while(m--)
{
fin >> X >> Y >> k;
L[x] . push_back({Y , k});
}
left = 1 , right = 1000;
while(left <= right)
{
middle = (left + right) / 2;
if(CHECK(middle))
poz = middle, right = middle - 1;
else left = middle + 1;
viz . reset();
while(!Q . empty())
Q . pop();
}
fout << poz << '\n';
fin.close();
fout.close();
return 0;
}