C1094 - 配平括号

题目描述

贝西正试图在她的新笔记本电脑上输入一串平衡的括号,但由于她的大蹄子,她经常打错字符。请帮助她计算出字符串中需要反转的最少字符数量(例如,将左括号变为右括号,或相反),以使字符串变得平衡。

对于括号字符串“平衡”有几种定义。也许最简单的定义是括号 '(' 和 ')' 的总数量必须相同,并且对于字符串的任何前缀,'(' 的数量必须至少等于 ')' 的数量。例如,以下字符串都是平衡的:

  • ()
  • (())
  • ()(()())

而这些则不是:

  • )(
  • ())(
  • ((())))

给出一个偶数长度的括号序列,问最少修改多少个括号可以使其平衡。

输入格式

1行字符串代表括号序列,只包含左括号和右括号,不包含空格

输出格式

1行,1个整数,代表最少需要修改的括号数

输入输出样例

输入样例 输出样例
())( 2
))))(((( 4

数据范围与提示

对于100%的数据满足:2 <= 输出字符串长度 <= 100,000,左右括号的总个数为偶数

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1094.in,输出文件名为:C1094.out