Pagini recente » Cod sursa (job #3290415) | Cod sursa (job #1862422) | Cod sursa (job #536457) | Cod sursa (job #3268286) | Cod sursa (job #2923378)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("distante.in");
ofstream out("distante.out");
const int NMAX = 50000;
int dist[NMAX + 1];
int n,m,s;
void verificare()
{
int x,y,cost;
bool ok=1;
in>>n>>m>>s;
for(int i=1; i<=n; i++)
in>>dist[i];
if (dist[s]!=0)
ok=0;
for(int i=1; i<=m; i++)
{
in>>x>>y>>cost;
if(dist[x]+cost<dist[y] || dist[y]+cost<dist[x])
ok=0;
}
if(ok==1)
out<<"DA"<<"\n";
else
out<<"NU"<<"\n";
}
int main()
{
int T;
in>>T;
for(int i=1; i<=T; i++)
{
verificare();
}
return 0;
}