#include using namespace std; int main() { int finish = 0; int res = 0; string a; cin >>...

0 голосов
278 просмотров

#include

using namespace std;

int main()
{
int finish = 0;
int res = 0;
string a;
cin >> a;
finish = a.length();
for (int x = 0; x < a.length(); x++)
{
if (a[x] == '(')
{
res++;
}
else
{
res--;
if (res < 0)
{
res++;
finish--;
}
}
}
finish -= res;
cout << finish;<br> }
Как сделать так, чтобы программа быстрее работала (задача: ограничение по времени на тест 5 seconds
ограничение по памяти на тест 256 megabytes
ввод стандартный ввод
вывод стандартный вывод
Напомним, что скобочная последовательность называется правильной, если путем вставки в нее символов «+» и «1» можно получить из нее корректное математическое выражение. Например, последовательности «(())()», «()» и «(()(()))» — правильные, в то время как «)(», «(()» и «(()))(» — нет.

Однажды Васе попалась скобочная последовательность. Он решил удалить из нее некоторые скобки так, чтобы последовательность стала правильной. Какую наибольшую длину может иметь получившаяся правильная скобочная последовательность?

Входные данные
В первой строке входного файла записана непустая строка, состоящая из символов «(» и «)». Её длина не превосходит 10(в 6 степени).

Выходные данные
Выведите длину наибольшей правильной скобочной подпоследовательности.

Примеры
входные данные
(()))(
выходные данные
4
приер2:
входные данные
((()())
выходные данные
6


Информатика (1.4k баллов) | 278 просмотров
0

Если что язык : c++

0

свой вариант решения написать можно?

0

да

Дан 1 ответ
0 голосов
Правильный ответ

#include

using namespace std ;


main()
{
string s;
cin >> s;
int cnt = 0, ans = 0;
for(int i = 0; i < s.size(); i++)
    if(s[i] == '(')
       cnt++;
    else
        if(cnt)
        {
            cnt--;
            ans+=2;
        }
    cout << ans;<br>  }


(8.8k баллов)
0

не помогло ()

0

:(

0

Эммм... может Вы не правильно копируете?

0

26B - Правильная скобочная подпоследовательность GNU C++11 Полное решение 374 мс 5900 КБ

0

У меня прошла

0

там на коефе какая - та лажа