Pagini recente » Cod sursa (job #1087328) | Cod sursa (job #617328) | Cod sursa (job #694514) | Cod sursa (job #822627) | Cod sursa (job #530317)
Cod sursa(job #530317)
#include<stdio.h>
#include<vector>
#include<cstring>
#define mp make_pair
using namespace std;
FILE *f=fopen("pscnv.in","r");
FILE *g=fopen("pscnv.out","w");
int N,M,X,Y,ok,m;
bool viz[250001];
vector <pair <int,int> > a[250001];
void df(int nod){
viz[nod]=1;
if(nod == Y)
{ok=1;return;}
for(unsigned int i=0;i<a[nod].size() && !ok;i++){
if( ! viz[a[nod][i].first] && a[nod][i].second <=m)
df(a[nod][i].first);
}
}
int main(){
fscanf(f,"%d%d%d%d",&N,&M,&X,&Y);
for(register int i=1;i<=M;++i)
{ int x,y,z;
fscanf(f,"%d%d%d",&x,&y,&z);
if(x!=y)
a[x].push_back(mp(y,z));
}
int p=1,u=1000,sol;
while(p<=u){
m=(p+u)/2;
ok=0;
memset(viz,0,sizeof(viz));
df(X);
if(ok)
{ sol=m;
u=m-1;
}
else p=m+1;
}
fprintf(g,"%d",sol);
return 0;
}