Cod sursa(job #1304276)
Utilizator | Data | 28 decembrie 2014 20:13:15 | |
---|---|---|---|
Problema | Distante | Scor | 100 |
Compilator | cpp | Status | done |
Runda | tema_vacanta_iarna | Marime | 0.59 kb |
#include <fstream>
#define lmax 50005
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int t,n,m,s,x,y,z;
int dist[lmax];
inline void solve()
{
bool ok=1;
f>>n>>m>>s;
for (int i=1;i<=n;i++)
f>>dist[i];
if (dist[s])
ok=0;
for (int i=1;i<=m;i++)
{
f>>x>>y>>z;
if (dist[x]+z<dist[y] || dist[y]+z<dist[x])
ok=0;
}
if (ok)
g<<"DA\n";
else
g<<"NU\n";
}
int main()
{
f>>t;
for (int i=1;i<=t;i++)
solve();
f.close();
g.close();
}