Cod sursa(job #1094642)
Utilizator | Andrei Mazareanu mazaandrei | Data | 29 ianuarie 2014 17:55:14 |
---|---|---|---|
Problema | Distante | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<fstream>
#include<vector>
using namespace std;
int t,n,m,s,d[50001],x,y,c;
ifstream in("distante.in"); ofstream out("distante.out");
int main(){
in>>t;
for(;t;--t){
in>>n>>m>>s; bool ok=true;
for(int i=1;i<=n;++i) in>>d[i];
if(d[s]!=0){ out<<"NU\n"; continue;}
for(int i=1;i<=m;++i){
in>>x>>y>>c;
if(d[x]+c<d[y]) ok=false;
if(d[y]+c<d[x]) ok=false;
}
if(ok==true) out<<"DA\n"; else out<<"NU\n";
}
}