Cod sursa(job #796922)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 12 octombrie 2012 22:49:56
Problema Distante Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.76 kb
Program p1;
var fi,fo:text;
    i,t,n,m,s:longint;
    d:array[0..50005] of longint;
    a,b,c:array[0..100003] of longint;

Procedure verific;
var t:boolean;
begin
    t:=true;
    if d[s]<>0 then t:=false
               else for i:=1 to m do if d[a[i]]+c[i]<d[b[i]] then t:=false;
    if t=true then writeln(fo,'DA')
              else writeln(fo,'NU');
end;

begin
    assign(fi,'distante.in'); reset(fi);
    assign(fo,'distante.out'); rewrite(fo);
    readln(fi,t);
    while t>0 do begin
                 readln(fi,n,m,s);
                 for i:=1 to n do read(fi,d[i]); readln(fi);
                 for i:=1 to m do readln(fi,a[i],b[i],c[i]);
                 verific;
                 dec(t);
                 end;
    close(fi); close(fo);
end.