Cod sursa(job #7188)

Utilizator damaDamaschin Mihai dama Data 21 ianuarie 2007 13:00:28
Problema Radiatie Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.92 kb
#include <stdio.h>
#include <vector>
#define infinit 1000000000

using namespace std;

vector<int> v[15001], cost[15001];
int n, m, k, mat[1000][1000];


int main()
{
	freopen("radiatie.in","r",stdin);
	freopen("radiatie.out","w",stdout);
	
	int i, a, b, c, j, l, temp;
	
	scanf("%d%d%d", &n, &m, &k);
	
	
	for(i = 1; i <= n; ++i)
	{
		for(j = i + 1; j <= n; ++j)
		{
			mat[i][j] = mat[j][i] = infinit;
		}
	}
	for(i = 1; i <= m; ++i)
	{
		scanf("%d%d%d", &a, &b, &c);
		mat[a][b] = mat[b][a] = c;
	}
	
	for(l = 1; l <= n; ++l)
	{
		for(i = 1; i <= n; ++i)
		{
			for(j = 1; j <= n; ++j)
			{
				if(mat[i][l] > mat[l][j])
				{
					temp = mat[i][l];
				}
				else
				{
					temp = mat[j][l];
				}
				if(temp < mat[i][j])
				{
					mat[i][j] = temp;
				}
			}
		}
	}
	
	for(i = 1; i <= k; ++i)
	{
		scanf("%d%d", &a, &b);
		printf("%d\n", mat[a][b]);
	}
	
return 0;
}