View Code of Problem 14

#include<iostream>
#include<string.h>
#include<math.h>
int dis[2010][2010];
bool us[2010][2010];
using namespace std;
int main(){
	int n;
	int t;
	int k=0;
	while(cin>>n>>t && (n!=0 && t!=0)){
		int a,b,va;k++;
		int x;
		memset(dis,0,sizeof(dis));
		memset(us,true,sizeof(us));
		for(int i=0;i<t;i++){
			cin>>a>>b>>va;
			if(dis[a][b]!=0){
			x=min(va,dis[a][b]);
			dis[a][b]=x;
			dis[b][a]=x;
			}
			else{
			dis[a][b]=va;
			dis[b][a]=va;	
			}
		}
		//cout<<dis[5][6]<<' '<<dis[4][5]<<endl;
		int w,e;
		cin>>w>>e;
		int c,d;
		int sum=0;
		for(int i=0;i<w;i++){
			cin>>c>>d;
		//	cout<<c<<' '<<d<<endl;
			if(dis[c][d]!=0 && us[c][d]==true){
			//	cout<<c<<' '<<d<<' '<<dis[c][d]<<endl;
				sum+=dis[c][d];
				us[c][d]=false;
				us[d][c]=false;
			}
			if(d==e){
				memset(us,false,sizeof(us));
			}
		}
		printf("Case#%d: ",k);
		printf("%d\n",sum);
	}
}

Double click to view unformatted code.


Back to problem 14