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

Обсуждение задачи 1027. Снова D++

WA26
Послано Gelioscope 25 июн 2011 11:42
This is my code:
#include <stdio.h>
#include <string.h>
#define ulong unsigned long
void main()
{
#ifndef ONLINE_JUDGE
    freopen("in.txt","rt",stdin);
    freopen("out.txt","wt",stdout);
#endif
    bool comment=0,arithmetical=0;
    long brakets=0;
    char syms[10001];
    ulong i=0;
    while(fgets(syms+i,10000,stdin))
    {
        i=strlen(syms)-1;
    }
    for(i=0;i<strlen(syms);++i)
    {
        if(comment)
        {
            for(;i<strlen(syms);++i)
                if(syms[i]=='*'&&syms[i+1]==')')
                {
                    ++i;
                    comment=0;
                    break;
                }
            continue;
        }
        if(arithmetical)
        {
            for(;i<strlen(syms);++i)
            {
                if(!((syms[i]>=0x28&&syms[i]<=0x2B)||(syms[i]>=0x30&&syms[i]<=0x39)||syms[i]=='-'||syms[i]=='/'||syms[i]=='='))
                {
                    printf("NO");
                    return;
                }
                if(syms[i]=='(')
                {
                    if(syms[i+1]=='*')
                    {
                        ++i;
                        comment=1;
                        break;
                    }
                    ++brakets;
                }
                if(syms[i]==')')
                {
                    --brakets;
                    if(!brakets)
                    {
                        arithmetical=0;
                        break;
                    }
                }
            }
            continue;
        }
        for(;i<strlen(syms);++i)
        {
            if(syms[i]=='(')
            {
                if(syms[i+1]=='*')
                {
                    ++i;
                    comment=1;
                    break;
                }
                ++brakets;
                arithmetical=1;
                break;
            }
            if(syms[i]==')')
            {
                printf("NO");
                return;
            }
        }
    }
    if(comment||arithmetical)
    {
        printf("NO");
        return;
    }
    printf("YES");
}
why wa 26?
Re: WA26
Послано Gelioscope 25 июн 2011 12:10
(*(**)*) must be "YES" or "NO"?
Re: WA26
Послано Gelioscope 25 июн 2011 17:23
must be "NO". i find the mistake.it seems, test contains the limit of text in one line.

Edited by author 25.06.2011 17:34

Edited by author 25.06.2011 17:35