View Code of Problem 14

#include <stdio.h>
#include <stdlib.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
int main()
{
	struct MyStruct
	{
		int a, b, value;
	}node[2000];
	int n, t, a, b, value, w, e;
	int i, j,k,preb,sum;
	int s = 1;
	while (scanf("%d%d",&n,&t))
	{
		if (n == 0 && t == 0)
			break;
		int str[2000][2] = { 0 };
		i = 0;
		
		preb = 0;
		while (t--)
		{
			scanf("%d%d%d", &a, &b, &value);
			
			if (a < preb)
			{
				for (j = 0; j <= i; j++)
				{
					if (node[j].a == a)
						break;
				}
				if (value < node[j].value)
				{
					node[j].value = value;
					node[j].a = a;
					node[j].b = b;
				}
					
			}else 
				{
					node[i].value = value;
					node[i].a = a;
					node[i].b = b;i++;
				}
			
			preb = b;
			
		}
		
		scanf("%d%d", &w, &e);
		for (j = 0; j < w; j++)
		{
			scanf("%d%d", &str[j][0], &str[j][1]);
		}
		sum = 0;
		preb = str[0][0];
		for (j = 0; j < w; j++)
		{
			if (str[j][0] == e )
				break;
			
			if (str[j][0] < str[j][1] && str[j][0] == preb)
			{
				for ( k = 0; k < i; k++)
				{
					if (node[k].a == str[j][0])
						break;
				}
				sum += node[k].value;
				preb = str[j][1];
			}
			if (str[j][1] == e)
				break;
		}
		printf("Case #%d: %d\n", s, sum);
		s++;
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 14