View Code of Problem 14

#include<stdio.h>
int main()
{
	int n, t,w,e,c,d;
	int num=0,sum;
	int a[2000][3];
	while (scanf("%d %d",&n,&t)!=EOF)
	{
		getchar();
		num++;
		if (n == 0 && t == 0) break;
		sum = 0;
		int j = 0;
		for (int i = 0; i < t; i++)
		{
			scanf("%d %d %d", &a[j][0], &a[j][1], &a[j][2]);
			if (j >= 1)
			{
				if (a[j][0] == a[j - 1][0] && a[j][1] == a[j - 1][1])
				{
					if (a[j][2] >= a[j - 1][2]) j--;
					else
					{
						a[j - 1][2] = a[j][2];
						j--;
					}
				}
			}
			j++;
		}
		scanf("%d %d", &w, &e);
		for (int i = 0; i < w; i++)
		{
			scanf("%d %d", &c, &d);
			for (int k = 0; k <= j; k++)
			{
				if ((c == a[k][0] && d == a[k][1]) || (c == a[k][1] && d == a[k][0]))
				{
					sum += a[k][2];
					a[k][0] = -1;
					a[k][1] = -1;
					break;
				}
			}
			if ( d == e)
			{
				for (int count = 0; count < n; count++)
				{
					if (a[count][0] == c)
					{
						sum += a[count][2];
						break;
					}
				}
				break;
			}
		}
		printf("Case #%d: %d",num,sum);

	}
	return 0;
}

Double click to view unformatted code.


Back to problem 14