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

Обсуждение задачи 1101. Робот в поле

TO ADMINS
Послано st.Punk Rizvanov++ de xXx Basic v1.0 is forever 2 авг 2006 07:04
Please check test#5, i think it wrong.
expression contains successively two registers without the operator between them.
Test is correct (-)
Послано Vladimir Yakovlev (USU) 2 авг 2006 15:18
thanks... but why this code get CRASH(INT_.....ZERO) ?
Послано st.Punk Rizvanov++ de xXx Basic v1.0 is forever 2 авг 2006 15:39
#define S        32768

inline bool sc(char*a,char*b){
    while(*a==*b)++a,++b;
    return *b==0;
}
............
............
        char s[S],*j;
        {char a[S];
        gets(a);
        char *i;
        for(i=a;*i;++i)if(*i>='a' && *i<='z')*i+='A'-'a';
        for(i=a,j=s;*i;){
            if(sc(i,"NOT"))*(j++)='!',i+=3;
            else if(sc(i,"AND"))*(j++)='&',i+=3;
            else if(sc(i,"OR"))*(j++)='|',i+=2;
            else if(sc(i,"TRUE"))*(j++)='1',i+=4;
            else if(sc(i,"FALSE"))*(j++)='0',i+=5;
            else if(*i>='A' && *i<='Z' || *i=='(' || *i==')')
                *(j++)=*(i++);
            else ++i;
        }
        *j='*';
#define IsReg(x)    (x>='A' && x<='Z' || x=='0' || x=='1')
        for(i=s;*i!='*';++i)
            if(IsReg(i[0]) && IsReg(i[1])){
                *i/=*i-*i;
            }
        }
............
............

Edited by author 02.08.2006 15:47
sorry... bug would in my code... :(
Послано st.Punk Rizvanov++ de xXx Basic v1.0 is forever 2 авг 2006 16:05
if the last word FALSE or TRUE, then this fucntion returun wrong result...
inline bool sc(char*a,char*b){
    while(*a==*b)++a,++b;
    return *b==0;
}