Pagini recente » Cod sursa (job #3222512) | Cod sursa (job #3134838) | Cod sursa (job #3242129) | Cod sursa (job #8788) | Cod sursa (job #1142691)
using namespace std;
#include<cstdio>
#include<vector>
#include<utility>
#include<map>
#include<cstring>
#include<queue>
const int MAXN=300000;
vector<pair<int,int> > v[MAXN];
bool ok[MAXN];
int main(){
freopen("pscnv.in","r",stdin);
freopen("pscnv.out","w",stdout);
int n,m,x,y;
scanf("%d%d%d%d",&n,&m,&x,&y);
for(int i=1;i<=m;i++){
int x,y,ps;
scanf("%d%d%d",&x,&y,&ps);
if(x==y){
continue;
}
v[x].push_back(make_pair(y,ps));
}
int lf=0,rt=2000;
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;
}
}
printf("%d",rt);
return 0;
}