View Code of Problem 14

#include<stdio.h>
struct location{
	int a,b,value;
}loc[2000];
int main()
{
	int n,t,a,b,value,w,e,k=1;
	while(scanf("%d %d",&n,&t)!=EOF&&n!=0)
	{
		for(int i=0;i<t;i++)
		{
			scanf("%d %d %d",&a,&b,&value);
			loc[i].a=a;loc[i].b=b;loc[i].value=value;
		}
		for(int i=0;i<t;i++)
		{
			for(int j=0;j<t;j++)
			{
				if(loc[i].a==loc[j].a&&loc[i].b==loc[j].b)
				{
					if(loc[i].value<loc[j].value)
					{
						loc[j].value=loc[i].value;
					}
					else
					{
						loc[i].value=loc[j].value;
					}
					
				}
			}
		}
		int p[2000]={0},q[2000]={0};
		scanf("%d %d",&w,&e);
		for(int i=0;i<w;i++)
		{
			scanf("%d %d",&p[i],&q[i]);
		}
		int dist[100][100]={{0}};
		int distance=0;
		for(int i=0;i<w;i++)
		{
			for(int j=0;j<t;j++)
			{
				if(p[i]==loc[j].a&&q[i]==loc[j].b&&dist[loc[j].a][loc[j].b]==0)
				{
					distance+=loc[j].value;
					dist[loc[j].a][loc[j].b]=1;dist[loc[j].b][loc[j].a]=1;
				}
				if(p[i]==loc[j].b&&q[i]==loc[j].a&&dist[loc[j].b][loc[j].a]==0)
				{
					distance+=loc[j].value;
					dist[loc[j].b][loc[j].a]=1;dist[loc[j].a][loc[j].b]=1;
				}
			}
		}
		printf("Case #%d: %d",k,distance);
		k++;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 14