View Code of Problem 14

#include<stdio.h>
int main()
{
	int n, t,w,e,c,d;
	int num=0,sum,flag;
	int a[2000][3];
	while (scanf("%d %d",&n,&t)!=EOF)
	{
		flag = 0;
		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);
			if (flag == 0)
			{
				for (int k = 0; k <= j; k++)
				{

					if ((c == a[k][0] && d == a[k][1]) || (c == a[k][1] && d == a[k][0]))
					{
						if (d != e)
						{
							sum += a[k][2];
							a[k][0] = -1;
							a[k][1] = -1;
							break;
						}
						else
						{
							for (int count = 0; count < n; count++)
							{
								if (a[count][0] == c)
								{
									sum += a[count][2];
									flag = 1;
									break;
								}
							}
						}
						
					}
				}
			}
		}
		printf("Case #%d: %d\n",num,sum);

	}
	return 0;
}

Double click to view unformatted code.


Back to problem 14