记录编号 326410 评测结果 AAAATTTTTT
题目名称 零食店 最终得分 40
用户昵称 Gravatardoriko 是否通过 未通过
代码语言 Pascal 运行时间 6.034 s
提交时间 2016-10-21 07:47:58 内存使用 1.11 MiB
显示代码纯文本
var x,y,z,i,num,m,n,q,st,xd,tl,ds,dw,next,ans,j:longint;
    dl,last:array[0..100000]of longint;
    f,dis,w:array[0..100]of longint;
    rd:array[0..20000,1..4]of longint;
 
  begin
 
    assign(input,'snackstore.in');reset(input);
    assign(output,'snackstore.out');rewrite(output);
 
    readln(n,m,q);
 
    for i:=1 to n do read(w[i]);
 
    for i:=1 to m do
        begin
          read(x,y,z);
          inc(num);
          rd[num,1]:=x;rd[num,2]:=y;rd[num,3]:=z;rd[num,4]:=last[x];
          last[x]:=num;
          inc(num);
          rd[num,1]:=y;rd[num,2]:=x;rd[num,3]:=z;rd[num,4]:=last[y];
          last[y]:=num;
        end;
 
    for i:=1 to q do
        begin
 
          readln(st,xd,tl);
 
          ans:=0;dl[1]:=st;
          fillchar(dis,sizeof(dis),127);
          ds:=1;dw:=1;f[st]:=1;dis[st]:=0;
          while ds<=dw do
            begin
 
              next:=last[dl[ds]];
              while next<>0 do
                begin
                  if rd[next,3]+dis[dl[ds]]<=tl then
                     begin
                       f[rd[next,2]]:=1;
                       if w[rd[next,2]]<=xd then
                       if rd[next,3]+dis[dl[ds]]<=dis[rd[next,2]] then
                          begin
                            inc(dw);
                            dl[dw]:=rd[next,2];
                            dis[rd[next,2]]:=rd[next,3]+dis[dl[ds]];
                          end;
                     end;
                  next:=rd[next,4];
                end;
              inc(ds);
 
            end;
          f[st]:=0;
          for j:=1 to n do if f[j]=1 then begin inc(ans);f[j]:=0;end;
 
          writeln(ans);
        end;
 
    close(output);
 
  end.