#include #include #include #include using namespace std; int main() { int n; string s; cin >> n >> s; long long l = 0; long long r = 0; vector> lr; long long ans = 0; long long C = 0; for (int i = 0; i < n; i++) { if (s[i] == '(') { r++; } else { if (r > 0) { r--; C++; } else { l++; } } lr.emplace_back(l, r); ans += C * 2; } sort(lr.begin(), lr.end(), [](auto a, auto b) { return min(-a.first, -a.first + a.second - b.first) > min(-b.first, -b.first + b.second - a.first); }); r = 0; for (auto p : lr) { long long take = min(r, p.first); r -= take; ans += take * 2; r += p.second; } cout << ans << endl; }