Pagini recente » Cod sursa (job #1741378) | Cod sursa (job #445294) | Cod sursa (job #1677616) | Cod sursa (job #2399356) | Cod sursa (job #2754935)
#include <bits/stdc++.h>
#define N 100005
#define f first
#define s second
#define INF 0x3F3F3F3F
using namespace std;
ifstream fin ("pscnv.in");
ofstream fout ("pscnv.out");
vector< pair<int,int> > g[N];
int n,m,p,q,x,y,z;
int v[N],st[N],dt[N];
int vmin=INF;
void Citire()
{
fin>>n>>m>>p>>q;
for(int i=1;i<=m;++i)
{
fin>>x>>y>>z;
g[x].push_back(make_pair(y,z));
}
}
void Cmin(int k)
{
int vmax=0;
for(int i=1;i<=k-1;++i)
if(dt[i]>vmax)vmax=dt[i];
vmin=vmax;
}
void Back(int k)
{
for(int i=0;i<g[st[k-1]].size();i++)
{
int nod=g[st[k-1]][i].f;
int dist=g[st[k-1]][i].s;
if(v[nod]==0&&dist<vmin)
{
v[nod]=1;
st[k]=nod;
dt[k-1]=dist;
if(nod==q)Cmin(k);
else Back(k+1);
v[nod]=0;
}
}
}
int main()
{
Citire();
v[p]=1;
st[1]=p;
Back(2);
fout<<vmin;
return 0;
}