#include using namespace std; int main(){ int N; cin >> N; vector L(2*N), R(2*N); vector C(2*N); for(int i = 0; i < 2*N; i++){ cin >> C[i] >> L[i] >> R[i]; } long long ans = 0; priority_queue, greater> pq; int left = 0, right = 0; for(int i = 2*N-1; i >= 0; i--){ if(C[i] == ')'){ right++; swap(L[i], R[i]); }else{ left++; } ans += L[i]; if(L[i] <= R[i]){ pq.push(R[i] - L[i]); } while(pq.size() > min(left, right)){ pq.pop(); } } while(!pq.empty()){ ans += pq.top(); pq.pop(); } cout << ans << endl; }