Pagini recente » Cod sursa (job #325249) | Cod sursa (job #2419028) | Cod sursa (job #2340080) | Cod sursa (job #2771120) | Cod sursa (job #328284)
Cod sursa(job #328284)
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string.h>
using namespace std;
#define in "pscnv.in"
#define out "pscnv.out"
#define pb push_back
#define mp make_pair
#define maxim(a,b) ((a) > (b) ? (a) : (b))
#define NMAX 250005
#define KMAX 1005
int N, M, X, Y;
vector < pair < int, int > > CST[KMAX];
int tata[NMAX];
int rang[NMAX];
int Find ( int x )
{
if ( x != tata[ x ] )
tata[ x ] = Find ( tata[ x ] );
return tata[ x ];
}
void Union ( int x, int y )
{
if ( rang[ x ] > rang[ y ] )
tata[ y ] = x;
else
{
tata[ x ] = y;
if ( rang[ x ] == rang[ y ] )
rang[ y ]++;
}
}
int main( void )
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ( "%d %d %d %d\n", &N, &M, &X, &Y );
int i, j, cost, K = 0;
char sep[] = " \n";
char *p;
char buffer[10000000];
fread ( buffer, sizeof(char), 10000000, stdin );
p = strtok ( buffer, sep );
i = atoi ( p );
p = strtok ( 0, sep );
j = atoi ( p );
p = strtok ( 0, sep );
cost = atoi ( p );
/*
M--;
//CST[ cost ].pb( mp( i, j ) );
K = maxim ( K, cost );
for ( ; M; --M )
{
p = strtok ( 0, sep );
i = atoi ( p );
p = strtok ( 0, sep );
j = atoi ( p );
p = strtok ( 0, sep );
cost = atoi ( p );
//CST[ cost ].pb( mp(i,j) );
K = maxim ( K, cost );
}
vector < pair<int,int> >::iterator it;
for ( i = 1; i <= N; ++i ) tata[ i ] = i, rang[i] = 0;
for ( i = 1; i <= K; ++i )
{
for ( it = CST[ i ].begin(); it != CST[ i ].end(); ++it )
{
if ( Find((*it).first ) != Find( (*it).second ) )
Union ( Find((*it).first), Find((*it).second) );
}
if ( Find ( X ) == Find ( Y ) ) { printf ( "%d\n", i ); break; }
}
*/
return 0;
}