Cod sursa(job #862402)

Utilizator matei_cChristescu Matei matei_c Data 22 ianuarie 2013 17:58:28
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<cstdio>
#include<cstring>
using namespace std ;

#define maxn 50010

int tst ;

int n, m, sursa ;
int dist[maxn] ;

int main()
{
	
	freopen("distante.in", "r", stdin);
	freopen("distante.out", "w", stdout);
	
	scanf("%d", &tst);
	
	for(int j = 1; j <= tst; ++j )
	{
		bool ok = true ;
		
		memset( dist, 0, sizeof(dist) ) ;
		
		scanf("%d%d%d", &n, &m, &sursa);
		
		for(int i = 1; i <= n; ++i )
			scanf("%d", &dist[i]);
		
		if( dist[sursa] )
			ok = false ;
		
		for(int i = 1; i <= m; ++i )
		{
			int a, b, cost ;
			
			scanf("%d%d%d", &a, &b, &cost);
			
			if( dist[b] > dist[a] + cost )
			{
				ok = false ;
				break ;
			}	
		}
		
		if( ok == true )
			printf("DA\n");
		else
			printf("NU\n");
	}	
	
	return 0 ;
	
}