View Code of Problem 3818

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>


int main(){
	int dis[100][100];
	int n,m,k;
	int a,b,c;
	while(scanf("%d %d %d",&n,&m,&k)!=EOF){
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				dis[i][j]=-1;
			}
		}
		for(int i=0;i<m;i++){
			scanf("%d %d %d",&a,&b,&c);
			dis[a][b]=c;
		}
		
		for(int g=0;g<k;g++){
			scanf("%d %d",&a,&b);
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++){
					if(dis[a][i]>=0&&dis[i][j]>=0){
						if(dis[a][i]+dis[i][j]>dis[a][j]){
							dis[a][j]=dis[a][i]+dis[i][j];
						}
					}		
			}
		}
		printf("%d\n",dis[a][b]);
		}
	}
}
				

Double click to view unformatted code.


Back to problem 3818