Pagini recente » Cod sursa (job #2576357) | Cod sursa (job #2354407) | Cod sursa (job #1238578) | Cod sursa (job #553523) | Cod sursa (job #2231358)
#include <fstream>
#include <stdlib.h>
#define infinit 0x3f3f3f
using namespace std;
int t, n, m, s; //t= cate grafuri sunt pe foaie //n= nr noduri, s = sursa, m= nr muchii
int dist[500001]; //dist minime calculate de bronzel
bool ok;
int main()
{
ifstream fin ("distante.in");
ofstream fout("distante.out");
if( !fin.is_open() || !fout.is_open() )
{
fout << "The file didn't open!\n";
exit (EXIT_FAILURE);
}
fin >> t;
for(int j=1; j<=t; j++)
{
fin >> n >> m >> s;
ok = 1;
for(int i=1; i<= n; i++)
fin >> dist[i];
if(dist[s]) ok = 0;
for(int i=1; i<=m; i++)
{
int u, v, w;
fin >> u >> v >> w;
if( dist[u] > dist[v] + w || dist[v] > dist[u] + w)
ok = 0;
}
if(ok)
fout << "DA\n";
else
fout << "NU\n";
}
fin.close();
fout.close();
return 0;
}