Pagini recente » Cod sursa (job #548098) | Cod sursa (job #2275789) | Cod sursa (job #336884) | Cod sursa (job #2615552) | Cod sursa (job #1043404)
#include <fstream>
using namespace std;
ifstream fin("distante.in");
ofstream fout("distante.out");
int v[50005],N;
bool sol[50005];
inline void Afisare()
{
int i,ok=1;
for(i=1;i<=N;++i)
if(!sol[i])
ok=0;
if(ok)
fout<<"DA\n";
else
fout<<"NU\n";
}
inline void Solve()
{
int M,start,i,x,y,cost;
fin>>N>>M>>start;
for(i=1;i<=N;++i)
{
fin>>v[i];
sol[i]=false;
}
for(i=1;i<=M;++i)
{
fin>>x>>y>>cost;
if(v[y]==v[x]+cost)
sol[y]=true;
if(v[x]==v[y]+cost)
sol[x]=true;
}
if(v[start]==0)
sol[start]=true;
Afisare();
}
int main()
{
int T;
fin>>T;
while(T--)
Solve();
fin.close();
fout.close();
return 0;
}