Pagini recente » Cod sursa (job #236255) | Cod sursa (job #1275767) | Cod sursa (job #332720) | Cod sursa (job #1189573) | Cod sursa (job #1304838)
#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],distm[lmax];
inline void solve()
{
bool ok=1;
f>>n>>m>>s;
for (int i=1;i<=n;i++)
{
f>>dist[i];
distm[i]=10000000;
}
distm[s]=0;
if (dist[s])
ok=0;
for (int i=1;i<=m;i++)
{
f>>x>>y>>z;
if (dist[y]+z<distm[x])
distm[x]=dist[y]+z;
if (dist[x]+z<distm[y])
distm[y]=dist[x]+z;
}
for (int i=1;i<=n;i++)
if (dist[i]!=distm[i])
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();
}