#include <iostream>
#include <stack>
namespace
{
const char& PLEFTCURLY('{');
const char& PRIGHTCURLY('}');
}
int longest_length_prefix(const std::string& parentheses)
{
int to_match(0), length_longest(0);
for(size_t p(0); p < parentheses.size(); ++p)
{
if(parentheses[p] == PLEFTCURLY) ++to_match;
else if(parentheses[p] == PRIGHTCURLY)
{
if(to_match) { --to_match; length_longest += 2; }
else break;
}
}
return length_longest;
}
int main()
{
std::cout << "\n" << longest_length_prefix("{{}{}}");
std::cout << "\n" << longest_length_prefix("{}{}");
std::cout << "\n" << longest_length_prefix("}{");
std::cout << "\n" << longest_length_prefix("{{{}{}}}}}}}");
std::cout << "\n" << longest_length_prefix("}}}{{}}{}}}");
return 0;
}