#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mk make_pair
int n, m;
vector < int > u, v, w;
vector < int > vc[10045];
void init(int N, int M,
std::vector<int> U, std::vector<int> V, std::vector<int> W) {
u = U;
v = V;
w = W;
}
bool vis[10045];
int getMinimumFuelCapacity(int X, int Y) {
int flag = true, i;
map < pair < int , int >, int > mp;
for( i = 0; i < m; i ++ ){
vc[ u[i] ].pb( v[i] );
vc[ v[i] ].pb( u[i] );
mp[ mk( u[i], v[i] ) ] = w[i];
mp[ mk( v[i], u[i] ) ] = w[i];
}
for(;;);
for( i = 0; i < n; i ++ ){
if( vc[i].size() != 2 ){
flag = false;
break;
}
}
if( flag == true ){
vis[X] = 1;
int p = vc[X][0];
int ans = mp[ mk(X,p) ];
while( p != Y ){
vis[ p ] = 1;
if( vc[p][0] == 0 ){
ans = max( ans, mp[ mk( p, vc[p][0] ) ] );
p = vc[p][0];
}
else{
ans = max( ans, mp[ mk( p, vc[p][1] ) ] );
p = vc[p][1];
}
}
p = vc[X][1];
int ans1 = mp[ mk(X,p) ];
while( p != Y ){
vis[ p ] = 1;
if( vc[p][0] == 0 ){
ans1 = max( ans, mp[ mk( p, vc[p][0] ) ] );
p = vc[p][0];
}
else{
ans1 = max( ans, mp[ mk( p, vc[p][1] ) ] );
p = vc[p][1];
}
}
return min( ans, ans1 );
}
flag = true;
int ans = 0;
for( i = 0; i < n; i ++ ){
if( vc[i].size() >= 3 ){
flag = false;
break;
}
}
if( flag == true ){
for( i = 0; i < m; i ++ )
ans = max( ans, w[i] );
return ans;
}
return 0;
}
int main() {
int N, M;
assert(2 == scanf("%d %d", &N, &M));
std::vector<int> U(M), V(M), W(M);
for (int i = 0; i < M; ++i) {
assert(3 == scanf("%d %d %d", &U[i], &V[i], &W[i]));
}
int Q;
assert(1 == scanf("%d", &Q));
std::vector<int> X(Q), Y(Q);
for (int i = 0; i < Q; ++i) {
assert(2 == scanf("%d %d", &X[i], &Y[i]));
}
init(N, M, U, V, W);
std::vector<int> minimum_fuel_capacities(Q);
for (int i = 0; i < Q; ++i) {
minimum_fuel_capacities[i] = getMinimumFuelCapacity(X[i], Y[i]);
}
for (int i = 0; i < Q; ++i) {
printf("%d\n", minimum_fuel_capacities[i]);
}
return 0;
}
Compilation message
/tmp/ccNpCFUo.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccArhbRN.o:swap.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status