#P9266. [PA 2022] Nawiasowe podziały

[PA 2022] Nawiasowe podziały

题目描述

题目译自 PA 2022 Runda 5 Nawiasowe podziały

我确信你是知道括号序列的,但是以防万一,并且作为回顾,让我们回忆一下它的定义:

  • () 是一个合法的括号序列。
  • 如果 SS 是一个合法的括号序列,那么 (S) 也是一个合法的括号序列。
  • 如果 S1S_1S2S_2 都是合法的括号序列,那么 S1S2S_1S_2 也是一个合法的括号序列。
  • 不符合上述规则的括号序列都不是合法的括号序列。

给出一个长度为 nn 且仅由字符 () 组成的字符串,以及一个数字 kk,这个字符串不一定是合法的括号序列。你的任务是把它分成 kk 个非空段(每个字符必须恰好属于一段内),使得每段中是合法括号序列的子串个数之和最小。

输入格式

第一行两个整数 n,kn,k,分别表示字符串长度和要分成的段数。

第二行一个长度为 nn 的字符串,保证字符串仅由 () 组成。

输出格式

输出一行一个整数,表示所有段中是合法括号序列的子串个数之和的最小值。

15 2
())(()())()(())

6

15 3
())(()())()(())

3

提示

对于 100%100\% 的数据,满足:

1kn1051\le k\le n\le 10 ^ 5