Cod sursa(job #823659)
| Utilizator | Data | 25 noiembrie 2012 14:58:10 | |
|---|---|---|---|
| Problema | Distante | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.73 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(int i=1;i<=t;++i)
{
int a,b,c,n,m,s;
bool ok=true;
f>>n>>m>>s;
for(int j=1;j<=n;++j)
f>>dist[j];
if(dist[s]!=0)
{
g<<"NU\n";
for(int j=1;j<=m;++j)
f>>a>>b>>c;
}
else
for(int j=1;j<=m;++j)
{
f>>a>>b>>c;
if(dist[a]+c<dist[b])
ok=false;
}
if(ok)
g<<"DA\n";
else
g<<"NU\n";
}
return 0;
}
