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

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

Help!!Why WA on test#1
Послано Comp 15 сен 2005 14:35
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int ans=1;

void _closed();

int main()
{
 char a, b;

 int open=0;

 a=fgetc(stdin);

 while (!feof(stdin) && ans)
       {
        b=fgetc(stdin);
        if (a == '(' && b == '*')
           {
            _closed();
            if (!ans)
               break;
            a=fgetc(stdin);
            continue;
           }
        if (a == '(')
           {
            open++;
            a=b;
            continue;
           }
        if (a == ')')
           {
            if (open == 0)
               {
                ans=0;
                break;
               }
            open--;
            a=b;
            continue;
           }
        if (!(isdigit(a) || a == '=' || a == '+' || a == '-' || a == '*' || a == '/') && open != 0)
           {
            ans=0;
            break;
           }
        a=b;
       }
 if (ans)
    printf("YES");
  else printf("NO");

 return 0;
}

void _closed()
{
 char a, b;

 a=fgetc(stdin);
 for (;;)
     {
      b=fgetc(stdin);
      if (feof(stdin))
         {
          ans=0;
          return;
         }
      if (a == '*' && b == ')')
         return;
      a=b;
     }
}