Pagini recente » Cod sursa (job #1721135) | Cod sursa (job #2313703) | Cod sursa (job #1573722) | Cod sursa (job #2715971) | Cod sursa (job #1477427)
#include <iostream>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
const int NMax=250005;
const int INFINIT=0x3f3f3f3f;
vector<pair<int,int>> Graf[1011];
int N,M,x,y,X,Y;
int T[NMax];
void Read()
{
scanf("%d%d%d%d",&N,&M,&X,&Y);
for(int i=1;i<=M;i++)
{
int a,b,ki;
scanf("%d%d%d",&a,&b,&ki);
Graf[ki].push_back(make_pair(a,b));
}
}
int Find(int nod)
{
if(nod==T[nod])
return nod;
return T[nod]=Find(T[nod]);
}
void Solve()
{
for(int i=1;i<=N;i++)
T[i]=i;
for(int i=1;i<=1000;i++)
for(auto it:Graf[i])
{
x=it.first,y=it.second;
x=Find(x),y=Find(y);
if(x!=y)
T[x]=y;
if(Find(X)==Find(Y))
{
printf("%d",i);
return;
}
}
}
int main()
{
freopen("pscnv.in","r",stdin);
freopen("pscnv.out","w",stdout);
Read();
Solve();
}