Pagini recente » Cod sursa (job #2286578) | Cod sursa (job #2751462) | Cod sursa (job #355394) | Cod sursa (job #2298803) | Cod sursa (job #2265907)
#include <fstream>
using namespace std;
ifstream f("pscnv.in");
ofstream g("pscnv.out");
struct
{
int nod,poz_urm;
short cost;
}v[750002];
int t,n,m,x,y;
void adarc(int a,int b,int c)
{
int ultim_poz[250002];
if(v[a].poz_urm==0){v[a].poz_urm=t;v[t].nod=b;v[t].cost=c;ultim_poz[a]=t;}
else
{
v[ultim_poz[a]].poz_urm=t;
v[t].nod=b;
v[t].cost=c;
ultim_poz[a]=t;
}
t++;
}
void parcurgere(int a,int b)
{ int prim,ultim,q[250002],crt;
short cost_min_nod[250002];
bool vizitat[250002];
prim=ultim=1;
q[prim]=a;
cost_min_nod[a]=0;vizitat[a]=1;
while(prim<=ultim)
{
crt=v[q[prim]].poz_urm;
while(crt!=0)
{
if(vizitat[v[crt].nod]==0 || max(cost_min_nod[q[prim]],v[crt].cost)<cost_min_nod[v[crt].nod])
{
cost_min_nod[v[crt].nod]=max(cost_min_nod[q[prim]],v[crt].cost);
vizitat[v[crt].nod]=1;
ultim++;
q[ultim]=v[crt].nod;
}
crt=v[crt].poz_urm;
}
prim++;
}
g<<cost_min_nod[y];
}
int main()
{f>>n>>m>>x>>y;
int i,a,b,c;
for(t=1;t<=n;t++)
v[t].nod=t;
for(i=1;i<=m;i++)
{
f>>a>>b>>c;
adarc(a,b,c);
}
parcurgere(x,y);
//for(i=1;i<=n+m;i++)
// g<<v[i].nod<<" "<<v[i].poz_urm<<" "<<v[i].cost<<'\n';
return 0;
}