#include using namespace std; #define int long long void testcase() { int N; cin >> N; string S; cin >> S; vector list_minus(N + 1, 0), list_zero(N + 1, 0), list_plus(N + 1, 0); for (int i = 0; i < N; i++) { list_minus[i + 1] = list_minus[i] + (S[i] == '-' ? 1 : 0); list_zero[i + 1] = list_zero[i] + (S[i] == '0' ? 1 : 0); list_plus[i + 1] = list_plus[i] + (S[i] == '+' ? 1 : 0); } int total_plus = list_plus[N]; vector next_zero(N + 1), next_plus(N + 1); next_zero[N] = next_plus[N] = N; for (int i = N - 1; i >= 0; --i) { if (S[i] == '0') next_zero[i] = i; else next_zero[i] = next_zero[i + 1]; if (S[i] == '+') next_plus[i] = i; else next_plus[i] = next_plus[i + 1]; } int max_count = 0; for (int i = 0; i < N; i++) { int count = (list_minus[min(next_zero[i], next_plus[i])] - list_minus[i]) + (list_zero[next_plus[i]] - list_zero[i]) + (list_plus[N] - list_plus[i]); max_count = max(max_count, count); } cout << max_count << '\n'; } int32_t main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); testcase(); return 0; }