Cod sursa(job #796929)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 12 octombrie 2012 23:02:19
Problema Distante Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
Program p1;
var fi,fo:text;
    i,t,n,m,s:longint; a,b,cost:longint;
    d:array[0..50005] of longint;
    b1,b2:array[0..1 shl 16] of char;

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

Procedure sar;
begin
    for i:=1 to m do readln(fi,a,b,cost);
end;

begin
    assign(fi,'distante.in'); reset(fi);
    assign(fo,'distante.out'); rewrite(fo);
    settextbuf(fi,b1); settextbuf(fo,b2);
    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);
                 if d[s]<>0 then begin
                                 writeln(fo,'NU');
                                 sar;
                                 end
                            else verific;
                 dec(t);
                 end;
    close(fi); close(fo);
end.