Cod sursa(job #1224353)

Utilizator DjokValeriu Motroi Djok Data 30 august 2014 18:06:49
Problema Distante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#include<algorithm>
#include<cstring>
using namespace std;

typedef struct lnod {
      int info,c;
      lnod *next;
}*nod;

int t,n,m,s,i,d[50005],x,y,c;
bool u,viz[50005];

int main()
{
  ifstream cin("distante.in");
  ofstream cout("distante.out");

  cin>>t;
  while(t--)
  {
    memset(viz,0,sizeof(viz));
    cin>>n>>m>>s; viz[s]=1;
    for(i=1;i<=n;++i) cin>>d[i];
    u=(d[s]) ? 1:0;
    for(i=1;i<=m && !u;++i)
    {
      cin>>x>>y>>c;
      if(d[x]+c<d[y]) u=1;
      if(d[x]+c==d[y]) viz[y]=1;
    }

    for(i=1;i<=n && !u;++i)
    if(!viz[i]) u=1;

    if(u) cout<<"NU\n"; else cout<<"DA\n";
  }

 return 0;
}