Pagini recente » Cod sursa (job #1349074) | Cod sursa (job #1234461) | Cod sursa (job #1374072) | Cod sursa (job #2355054) | Cod sursa (job #2543331)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin ("pscnv.in");
ofstream cout ("pscnv.out");
int n, m, src, dst, x, y, z;
vector <pair <int, int>> g[250005];
bool viz[250005];
bool bfs(int lim) {
queue <int> q;
for(int i = 1; i <= n; i++)
viz[i] = 0;
viz[src] = 1;
q.push(src);
while(!q.empty()) {
int nod = q.front();
q.pop();
for(auto &fiu : g[nod]) {
if(fiu.second <= lim && !viz[fiu.first]) {
q.push(fiu.first);
viz[fiu.first] = 1;
}
}
}
return viz[dst];
}
int main() {
cin >> n >> m >> src >> dst;
for(; m; m--) {
cin >> x >> y >> z;
g[x].push_back({y, z});
}
int st = 1, dr = 1000, mid;
while(st <= dr) {
mid = (st + dr) >> 1;
if(bfs(mid))
dr = mid - 1;
else
st = mid + 1;
}
cout << st;
return 0;
}