View Code of Problem 14

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,t,k=1;
	while(cin>>n>>t){
		if(n==0&&t==0)	break;
		int m[n+1][n+1];
		for(int i=0;i<n+1;i++)
			for(int j=0;j<n+1;j++)
				m[i][j]=999999;
		for(int i=0;i<t;i++){
			int a,b,c;
			cin>>a>>b>>c;
			if(m[a][b]>c) m[a][b]=c;
		}
		int flag[10000]={0},flag2=0;
		int w,e,dis=0;
		cin>>w>>e;
		for(int i=0;i<w;i++){
			int a,b;
			cin>>a>>b;
			if((flag[a]==0||flag[b]==0)&&flag2==0){
				dis+=m[a][b];
				flag[a]=1;
				flag[b]=1;
			}
			if(b==e)	flag2=1;
		}
		printf("Case #%d: %d\n",k++,dis);
	}
}

Double click to view unformatted code.


Back to problem 14