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

Обсуждение задачи 1299. Псилонцы

WHY? Wrong Answer???
Послано Heng 15 авг 2012 07:55
program URAL1299(input,output);
  var n,np,m,mp,p,x,yg:longint;
    ch:char;
  procedure gfire;
    begin
      if (abs(yg)>=10)or(m=0)
         then writeln('FRONT ',x)
         else writeln( 'FIRE ',p);
    end;
  procedure bfire;
    begin
      if (abs(yg)>=5)or(m=0)
         then writeln('BACKWARD ',x)
         else writeln('FIRE ',p);
    end;
  procedure attack;
    begin
      readln(n,np);
      if n*np>=3*m*mp
         then gfire
         else bfire;
    end;
  procedure guard;
    begin
      if m=0 then begin
         writeln('STOP');exit;
      end;
      if abs(yg)<5
         then writeln('FIRE ',p)
         else begin
         if yg>=+5 then writeln( 'LEFT ',x);
         if yg<=-5 then writeln('RIGHT ',x);
         end;
    end;
  procedure defense;
    begin
      if m*20>=p
      then bfire
      else guard;
    end;
  procedure patrol;
    begin
      readln(yg);//yg:=yg+180;
      if m>0 then defense else begin
        if abs(yg)<=20 then writeln('FRONT ',x) else
        if abs(yg)>=160then writeln('BACKWARD ',x)else
           begin
             if yg<-90 then yg:=+180-abs(yg);
             if yg>+90 then yg:=-180+abs(yg);
             if yg>  0 then writeln('LEFT ',x)
                       else writeln('RIGHT ',x);
           end;
      end;
    end;
  begin
    readln(x,p);
    if x>100 then x:=100;
    if p> 20 then p:= 20;
    readln(ch);readln(m,mp,yg);
    case ch of
      'G':guard;
      'A':attack;
      'P':patrol;
      'D':defense;
    end;
  end.
Re: WHY? Wrong Answer???
Послано Heng 15 авг 2012 08:14
WA14~
Re: WHY? Wrong Answer???
Послано [SPb NRU ITMO] Niyaz Nigmatullin 22 фев 2013 22:23
>if x>100 then x:=100;
>if p> 20 then p:= 20;

You have to use initial values, while finding solution.

>     if n*np>=3*m*mp
This has to be n*np>3*m*mp

My solution failed on 14th test, because mine was written like:
if n*np*3>m*mp