Решение задачи №899 «Баланс скобок» с ACMP





Решение задачи №899 «Баланс скобок» с ACMP

Условие задачи

Дана последовательность, состоящая из открывающихся и закрывающихся круглых, квадратных и фигурных скобок.

Требуется написать программу, которая определит возможность добавления в эту последовательность цифр и знаков арифметических действий таким образом, чтобы получилось правильное скобочное выражение.

Входные данные
Входной файл INPUT.TXT содержит не менее 1 и не более 10 строк. В каждой строке записана одна последовательность скобок. Длина последовательности от 1 до 255 символов.

Выходные данные
В выходной файл OUTPUT.TXT выведите слитно символы 0 или 1. Их общее количество равно количеству введенных строк. Для каждой строки выводится 0, если из нее может получиться правильное скобочное выражение, и 1 иначе.

#include<iostream>
#include<stack>
using namespace std;
int main(){
int a;string t;
stack<char>s;
while(cin>>t){
a=0;
for(auto c:t){
if(c=='('||c=='['||c=='{')s.push(c);
else if(!s.empty()&&
(c==')'&&s.top()=='('
||c==']'&&s.top()=='['
||c=='}'&&s.top()=='{'))s.pop();
else {a=1;break;}}
if(!s.empty()){a=1;
while(!s.empty())s.pop();}
cout<<a;}
return 0;}



Условия задач взяты с сайта acmp.ru