Cod sursa(job #1609839)
| Utilizator | Data | 23 februarie 2016 08:15:38 | |
|---|---|---|---|
| Problema | Distante | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <iostream>
#include <fstream>
#define NMAX 50002
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int n,m,x,y,s,c,t,d[NMAX];
bool ok;
int main()
{
f >> t;
for(int k=1;k<=t;k++)
{
ok = true;
f >> n >> m >> s;
for(int i=1;i<=n;i++)
f >> d[i];
if(d[s]!=0) ok = false;
for(int i=1;i<=m;i++)
{
f >> x >> y >> c;
if(d[y]>d[x]+c || d[x]>d[y]+c)
ok = false;
}
if(ok)
g << "DA" << "\n";
else
g << "NU" << "\n";
}
return 0;
}
