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

Обсуждение задачи 1346. Интервалы монотонности

Help me please!!! I have WA on #21 ! I'm really puzzled... =(
Послано hey, dude! 20 мар 2005 15:26
Here is a code :

var
 a : array [0..100000] of longint;
 i,m,n,k : longint;
 big : boolean;
procedure vvod;
begin
 {assign(input,'1.txt'); reset(input);}
 read(m,n); k := 0;
 for i := m to n do read(a[i]);
end;
procedure find;
begin
 if (a[m+1] >= a[m]) then big := true
 else big := false;
 for i := m + 1 to n do
 begin
  if big and (a[i] < a[i-1]) then
  begin
   inc(k);
   if (a[i+1] < a[i]) then big := false;
  end
  else
  if not(big) and (a[i] >= a[i-1]) then
  begin
   inc(k);
   if (a[i+1] >= a[i]) then big := true;
  end;
 end;
end;
procedure vivod;
begin
 inc(k); writeln(k);
end;
begin
 vvod;
 find;
 vivod;
end.

Could you give any test for which my program output bad answer? Thanks a lot!
Re: Help me please!!! I have WA on #21 ! I'm really puzzled... =(
Послано michel mizrahi 26 мар 2005 05:31
I have WA in test #21 too
here is my code:
#include <stdio.h>

int main()
{
  int a,b,f[100003],res,c,i,p;
  res=0;
  scanf("%d %d",&a,&b);
  b=b-a+1;
  for(i=0;i<b;i++)
    scanf("%d",&f[i]);
  if(f[1]>f[0]) c=1;
  else c=0;
  res++;
  for(i=1;i<b;i++){
     if(f[i]>f[i-1]){
        if(c==1 || c==2) continue;
        else{
          if((i+1)<b){
                if(f[i+1]>f[i]) c=1;
              else if(f[i+1]<f[i]) c=0;
              else c=2;
          }
             res++;
        }
     }
     else if (f[i]<f[i-1]){
        p++;
        if(c==0 || c==2) continue;
        else{
          if((i+1)<b){
               if(f[i+1]<f[i]) c=0;
              else if(f[i+1]>f[i]) c=1;
              else c=2;
          }
          res++;
        }
     }
  }
 if(res==0) printf("1\n");
 else printf("%d\n",res);
  return 0;
}
So could anyone find an error in previous code?
Послано hey, dude! 31 мар 2005 18:00
Re: So could anyone find an error in previous code?
Послано Lifanov 6 апр 2005 21:50


Edited by author 29.04.2005 09:45
Re: So could anyone find an error in previous code?
Послано Lifanov 6 апр 2005 21:58
I write the programm before has looked forum and get WA21 too.
Who solve this problem - help!