jainbot27

ahasdfasd

Jul 21st, 2020
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 1e6 + 10;
  5.  
  6. int n, v[N], m[2][N];
  7. int p[N];
  8. char x[N];
  9. int main(){
  10.     cin >> n;
  11.     for(int i =1 ; i <= n; i++){
  12.         cin >> x[i];
  13.         v[i] = x[i] == '(';
  14.     }
  15.     if(n&1){
  16.         cout << 0 << endl;
  17.         return 0;
  18.     }
  19.     p[0] = 0; m[0][0] = 0;
  20.     for(int i = 1; i <= n; i++){
  21.         p[i] = p[i-1] + (v[i]?1:-1);
  22.     }
  23.     for(int i =0 ; i <= n; i++){
  24.         m[0][i] = min(m[0][i-1], p[i]);
  25.     }
  26.     m[1][n] = p[n];
  27.     for(int i = n-1; i>=1; i--){
  28.         m[1][i] = min(m[1][i+1] , p[i]);
  29.     }
  30.     int ans = 0;
  31.     for(int i = 1; i <= n; i++){
  32.         if(v[i]) ans+=(p[n] == 2 && m[0][i-1] >= 0 && m[1][i] >= 2);
  33.         else ans+=(p[n] == -2 && m[0][i-1] >= 0 && p[i] >= -2 && m[1][i] >= -2);
  34.     }
  35.     cout << ans << endl;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment