printЗанятие 2

printB. Задачник по арифметике

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу для проверки задачника по арифметике.
Во входном файле содержится одна или более строк (длиной от 1 до 100 символов), каждая из которых содержит один арифметический пример. Правильный пример составлен из целых чисел, четырех арифметических действий (+,-,*,/), круглых скобок и, возможно, пробелов. Знак "-" используется для обозначения как вычитания, так и получения противоположного значения.
Ошибками в примерах являются:
несоответствие скобок 3)+(2
пустые скобки 3+()
неотрицательное число в скобках (2)+3
отсутствие операнда в арифметическом
действии или самого действия
*3+2 или (2+4)3
два или более знака подряд
(должно быть 2+(-3))
2+-3
пробелы в середине числа
(в любом другом месте разрешено
произвольное количество пробелов)
2 45+3
число, кроме 0, начинающееся с 0 45+032 или 000+2
пример, состоящий из одного числа
(в примере должно быть как минимум
одно вычисление 2*2 или –(-1))
2 или –2
недопустимые символы [x+2]:0.02=4
Ошибкой не является:
дополнительные скобки ((((2+4)))*5)
В выходном файле для каждого примера с ошибками вывести его номер. Каждый номер печатается на отдельной строке. Если неправильных примеров в файле нет, то в выходной файл вывести число 0.

Пример ввода

-(2+2) * 30                   
7*(6+3                        
2+-2                          
2+(-2)
4

Вывод для примера

2                        
3                        
5                        

loading