Pagini recente » Cod sursa (job #436596) | Cod sursa (job #1068656) | Cod sursa (job #2216992) | Cod sursa (job #1483502) | Cod sursa (job #745200)
Cod sursa(job #745200)
#include<fstream>
#include<vector>
#include<utility>
#define mp make_pair
#define pb push_back
#define f first
#define s second
using namespace std;
ofstream out("pscnv.out");
const int mm=250005,mm2=1001;
vector<pair<int ,int> >G[mm2];
typedef vector<pair<int,int > > :: iterator IT;
int T[mm],n,m,X,Y;
void read();
void kruskal();
void unite(int x,int y);
int search(int x);
int main()
{
read();
kruskal();
return 0;
}
void read()
{
ifstream in("pscnv.in");
in>>n>>m>>X>>Y;
int x,y,c;
for(int i=1;i<=m;i++)
{
in>>x>>y>>c;
G[c].pb(mp(x,y));
}
}
int search(int x)
{
if(x!=T[x])
T[x]=search(T[x]);
return T[x];
}
void unite(int x,int y)
{
T[x]=y;
}
void kruskal()
{
int i,j;
for(i=1;i<=n;i++)
T[i]=i;
for(i=1;i<mm;i++)
{
for(IT I=G[i].begin();I<G[i].end();++I)
{
if(search(I->f)!=search(I->s))
unite(search(I->f),search(I->s));
}
if(search(X)==search(Y))
{
out<<i;
return;
}
}
}