天天看點

牛客OI賽制測試賽2 E :括号序列

#include<bits/stdc++.h>
using namespace std;

const int maxn=5000000+100;

char ch[maxn];
int ph[maxn];

int main(){
  
  int n;
  scanf("%d",&n);
  getchar();
  int tot=0;
  int ans=0;
  int ci=0;
  for(int i=1;i<=n;i++){
    
    scanf("%c",&ch[i]);
    if(ch[i]=='(') ph[tot++]=i;
  }
  for(int i=1;i<=n;i++){
    
    if(ch[i]=='(') ans++;
    else{
      
      ans--;
      if(ans<0) ans+=2,ci++,swap(ch[i],ch[ph[--tot]]);
    }
  }
  printf("%d\n",ci);
}      

繼續閱讀