Pagini recente » Cod sursa (job #2054341) | Cod sursa (job #1258734) | Cod sursa (job #67772) | Cod sursa (job #1142693)
using namespace std;
#include<fstream>
#include<vector>
#include<utility>
#include<map>
#include<cstring>
#include<queue>
ifstream cin("pscnv.in");
ofstream cout("pscnv.out");
const int MAXN=300000;
vector<pair<int,int> > v[MAXN];
bool ok[MAXN];
int main(){
int n,m,x,y;
cin>>n>>m>>x>>y;
for(int i=1;i<=m;i++){
int x,y,ps;
cin>>x>>y>>ps;
if(x==y){
continue;
}
v[x].push_back(make_pair(y,ps));
}
int lf=0,rt=1000;
while(lf<rt){
int mid=(lf+rt)/2;
memset(ok,0,sizeof(ok));
queue<int> q;
ok[x]=1;
q.push(x);
while(!q.empty()){
int i=q.front();
q.pop();
for(unsigned j=0;j<v[i].size();j++){
int u=v[i][j].first;
int cs=v[i][j].second;
if(!ok[u] && mid>=cs){
ok[u]=1;
q.push(u);
}
}
}
if(ok[y]){
rt=mid;
}else{
lf=mid+1;
}
}
cout<<lf;
return 0;
}