Cod sursa(job #146256)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 1 martie 2008 14:45:50
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>
#include <string.h>

int n, m, s, t, d[50005];

int main()
{
	freopen("distante.in","r",stdin);
	freopen("distante.out","w",stdout);

	scanf("%d",&t);
	int i, ok, x, y, c;
	while (t--)
	{
		ok = 1; 
		scanf("%d %d %d",&n,&m,&s);
		for (i = 1; i <= n; i++) scanf("%d",&d[i]);
		if (d[s]) ok = 0;
		else
 		for (i = 1; i <= m; i++)
		{
			scanf("%d %d %d",&x,&y,&c);
			if (d[x] + c < d[y])  ok = 0;
			if (d[y] + c < d[x])  ok = 0;
		}		
		if (ok) printf("DA\n");
		else printf("NU\n");
	}
	return 0;
}