ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1085. Встреча

Why WA. Please, help!!!
Послано AIT 7 дек 2002 18:08
This is my program. What's wrong with it?

type tchel = record start: byte; money: word; pr: byte; end;
Var n, m, k, kk: longint;
    mas: array [1..100,1..100] of integer;
    guys: array [1..100] of tchel;
    tm: array [1..100] of byte;
    i, j, h, l: longint;
    baki, bt: longint;
    nom: longint;
    can: boolean;
function min (a, b: longint): longint;
begin
     if a<b then min:=a else min:=b;
end;
Begin
    read(n, m);
    for i:=1 to n do
     for j:=1 to n do
     mas[i,j]:=10000;
    for i:=1 to m do
    begin
         read(h);
         for j:=1 to h do
         read(tm[j]);
         for j:=1 to h do
          for l:=1 to h do
          if l<>j then
          mas[tm[j],tm[l]]:=1;
    end;
    read(k);
    for i:=1 to k do
    begin
         read(guys[i].money,guys[i].start,guys[i].pr);
    end;
    baki:= maxlongint;
    for kK:=1 to n do
     for i:=1 to n do
      for j:=1 to n do
      mas[i,j]:=min(mas[i,j],mas[i,kk]+mas[kk,j]);
      for i:=1 to n do
       mas[i,i]:=0;
      for i:=1 to n do
      begin
           can:=true;
           bt:=0;
           for j:=1 to k do
           begin
                h:=mas[guys[j].start,i];
                h:=h*4;
                if (h<=guys[j].money)or(guys[j].pr=1) then
                begin
                     if guys[j].pr = 0 then
                     inc(bt,h);
                end
                else
                begin
                     can:=false;
                     break;
                end;
           end;
           if can then if bt<baki then begin baki:=bt; nom:=i; end;
      end;
      if baki = maxlongint then
      writeln(0)
      else
      begin
           writeln(nom,' ', baki);
      end;
End.