#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; } как сделать так, чтобы программа быстрее работала (: ограничение по времени на тест 5 seconds ограничение по памяти на тест 256 megabytes ввод стандартный ввод вывод стандартный вывод напомним, что скобочная последовательность называется правильной, если путем вставки в нее символов «+» и «1» можно получить из нее корректное выражение. например, последовательности «», «()» и «» — правильные, в то время как «)(», «» и «» — нет. однажды васе попалась скобочная последовательность. он решил удалить из нее некоторые скобки так, чтобы последовательность стала правильной. какую наибольшую длину может иметь получившаяся правильная скобочная последовательность? входные данные в первой строке входного файла записана непустая строка, состоящая из символов «(» и «)». её длина не превосходит 10(в 6 степени). выходные данные выведите длину наибольшей правильной скобочной подпоследовательности. примеры входные данные выходные данные 4 приер2: входные данные выходные данные 6
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;
}