Cod sursa(job #823665)
Utilizator | Data | 25 noiembrie 2012 15:06:18 | |
---|---|---|---|
Problema | Distante | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <iostream>
#include <fstream>
#define DN 50005
using namespace std;
int dist[DN];
ifstream f("distante.in");
ofstream g("distante.out");
int main()
{
int t;
f>>t;
for(; t ;--t)
{
int a,b,c,n,m,s;
bool ok=true;
f>>n>>m>>s;
for(int i=1;i<=n;++i)
f>>dist[i];
if(dist[s]!=0)
{
g<<"NU\n";
for(int i=1;i<=m;++i)
f>>a>>b>>c;
}
else
{
for(int i=1;i<=m;++i)
{
f>>a>>b>>c;
if(dist[a]+c<dist[b])
ok=false;
}
if(ok)
g<<"DA\n";
else
g<<"NU\n";
}
}
return 0;
}