Cod sursa(job #781649)
| Utilizator | Data | 24 august 2012 19:47:10 | |
|---|---|---|---|
| Problema | Distante | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
#define NM 50010
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int N,M,S,i,j,a,b,c;
int D[NM];
string ANS[2]= {"NU","DA"};
int T;
bool Solve ()
{
f >> N >> M >> S;
for (i=1; i<=N; i++)
f >> D[i];
bool ok=D[S]==0;
for (i=1; i<=M; i++)
{
f >> a >> b >> c;
if (D[a]+c<D[b]) ok=0;
if (D[b]+c<D[a]) ok=0;
}
return ok;
}
int main ()
{
for (f >> T; T; --T)
{
g << ANS[Solve()] << '\n';
}
f.close();
g.close();
return 0;
}
