Cod sursa(job #1422938)
| Utilizator | Data | 20 aprilie 2015 13:34:10 | |
|---|---|---|---|
| Problema | Distante | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
#define NMax 50005
using namespace std;
int N,M,S,T,D[NMax],a,b,c;
ifstream g("distante.in");
ofstream f("distante.out");
int Solve()
{
g>>N>>M>>S;
for(int i=1;i<=N;i++)
g>>D[i];
int ok=1;
for(int i=1;i<=M;i++)
{
g>>a>>b>>c;
if(D[a]+c<D[b] || D[b]+c<D[a])
ok=0;
}
return ok && D[S]==0;
}
int main()
{
g>>T;
while(T--)
{
if(Solve())
f<<"DA\n";
else
f<<"NU\n";
}
}
