Pagini recente » Cod sursa (job #537575) | Cod sursa (job #1557998) | Cod sursa (job #1445917) | Cod sursa (job #1746681) | Cod sursa (job #7347)
Cod sursa(job #7347)
#include <stdio.h>
#include <vector>
using namespace std;
int n, m, k, i, j;
struct nod{int a, b, c; };
int mini[16000];
vector <vector<nod> > A;
int main() {
freopen("radiatie.in", "r", stdin);
freopen("radiatie.out", "w", stdout);
scanf("%d %d %d", &n, &m, &k);
A.resize(n+3);
for (i=1; i<=m; i++) {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
nod Q; Q.a=a; Q.b = b; Q.c = c;
A[a].push_back(Q);
A[b].push_back(Q);
}
for (i=1; i<=k; i++) {
for (j=1; j<=n; j++) mini[j] = 2000000*1000;
int a, b;
scanf("%d %d", &a, &b);
mini[a] = 0;
while (1) {
int ok = 0;
for (j=1; j<=n; j++) if (mini[j] != 2000000*1000) {
for (int p = 0; p<A[j].size(); p++) {
int alt = mini[j];
if (A[j][p].c > alt) alt = A[j][p].c;
if (alt < mini[A[j][p].b]) {ok=1; mini[A[j][p].b]=alt;}
}
}
}
printf("%d\n", mini[b]);
}
return 0;
}