CF1248D1.The World Is Just a Programming Task (Easy Version)
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的简化版。在本版本中,n≤500。
Vasya 是一位经验丰富的编程竞赛题目开发者。和所有伟大的人一样,Vasya 也曾遇到过创作瓶颈。为了解决这个问题,Petya 送给了他一个只包含左括号和右括号的字符串。Petya 认为,一个括号字符串的美丽值是其所有循环移位中,能够构成合法括号序列的个数。
为了转移注意力,Vasya 决定从字符串中任选两个位置(可以相同),并交换这两个位置上的字符。Vasya 只会执行一次这样的操作。他想知道,通过这样的操作,字符串的最大美丽值是多少。请你帮助他。
我们提醒你,括号序列 s 被称为合法的,当且仅当:
- s 为空;
- s 形如“(t)”,其中 t 是合法括号序列;
- s 形如 t1t2,即 t1 和 t2 的连接,其中 t1 和 t2 都是合法括号序列。
例如,“(()())”、“()” 是合法的,而 “)(” 和 “())” 不是合法的。
长度为 n 的字符串 s 的循环移位 k(0≤k<n)是指将字符串 s 的最后 k 个字符与前 n−k 个字符连接起来。例如,字符串 “(())()” 的循环移位 2 是 “()(())”。
如果 i=j,则循环移位 i 和 j 被认为是不同的。
输入格式
第一行包含一个整数 n(1≤n≤500),表示字符串的长度。
第二行包含一个恰好由 n 个字符组成的字符串,每个字符都是 “(” 或 “)”。
输出格式
第一行输出一个整数,表示通过交换任意两个字符后,字符串能够达到的最大美丽值。
第二行输出两个整数 l 和 r(1≤l,r≤n),表示应交换的两个字符的位置。
如果有多种交换方式可以达到最大美丽值,输出任意一种即可。
输入输出样例
输入#1
10 ()()())(()
输出#1
5 8 7
输入#2
12 )(()(()())()
输出#2
4 5 10
输入#3
6 )))(()
输出#3
0 1 1
说明/提示
在第一个样例中,我们可以交换第 7 个和第 8 个字符,得到字符串 “()()()()()”。该字符串的循环移位 0,2,4,6,8 都是合法括号序列。
在第二个样例中,交换第 5 个和第 10 个字符后,得到字符串 “)(())()()(()”。其循环移位 11,7,5,3 都是合法括号序列。
在第三个样例中,任意交换两个括号,合法括号序列的循环移位数都是 0。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?