Pagini recente » Cod sursa (job #928009) | Cod sursa (job #993319) | Cod sursa (job #1663771) | Cod sursa (job #3242948) | Cod sursa (job #1915014)
#include <list>
#include <fstream>
using namespace std;
#define f first
#define s second
ifstream fin("pscnv.in");
ofstream fout("pscnv.out");
int a,b,c,d,fv[500010],ans,x,y,ls,ld,mij,n,m,i;
list< pair<int,int> > G[500010];
void DF( int nod )
{
fv[ nod / 32 ] += 1 << ( nod % 32 );
for( auto it : G[ nod ] )
if( it.s <= mij && fv[ it.f ] ^ ( 1 << ( it.f % 32 ) ) )
DF( it.f );
}
int main()
{
fin>>n>>m>>a>>b;
for( i = 1 ; i <= m ; i++ )
{
fin>>x>>y>>c;
G[ x ].push_back( { y , c } );
}
ls = 1;
ld = 1000;
while( ls <= ld )
{
mij = ls + ( ld - ls ) / 2;
for( i = 0 ; i <= n / 32 + 2 ; i++ )
fv[ i ] = 0;
DF( a );
if( fv[ b / 32 ] & ( 1 << ( b % 32 ) ) )
{
ld = mij - 1;
ans = mij;
}
else
{
ls = mij + 1;
}
}
fout<<ans;
return 0;
}