P9964 [THUPC 2024 初赛] 多折较差验证

题目描述

临海听潮意,入林闻籁鸣。这是一座依山傍水、宁静祥和的小镇,在这里人们很少担心自己家里的物品故障损坏,因为 Kanan 总能帮大家修好。Kanan 是这片地区首屈一指的机械师;虽然她还年轻,但是娴熟的技艺加上慷慨的性格使得她平时总会收到人们的修理委托,据说就连那位遗世独立的魔王遇到了问题都得求助她。在帮人修理时, Kanan 会接触到千奇百怪的使用说明书。其中一些说明书有着不可思议的折叠结构,Kanan 为了理解机械的构造会在修理之前展开说明书,可在修好之后按照原来的折痕折回原状却比修理本身更费劲。 对于所有折痕互相平行的说明书,可以按照说明书上文字的阅读顺序从上到下给每条折痕分别编号 $1, 2, \cdots, N$,这 $N$ 条折痕将说明书分成了 $(N+1)$ 条纸带。每条折痕可能为两种形态之一:一种是垂直纸面向内凸出,对应将纸的上下两半向前对折;一种是垂直纸面向外凸出,对应将上下两半向后对折。根据折痕截面的形状,分别使用小写字母 `v` 表示向内凸出的折痕,`^` (ASCII 码为 $94$)表示向外凸出的折痕。假设所有纸带的宽度都是一样的,并且折纸的过程中说明书不发生形变,那么沿着一条折痕对折后两侧的纸能够重合,当且仅当两侧的折痕是相反的;即,如果沿着第 $k$ 条折痕折叠,那么对于所有满足 $1\le k-m

输入格式

输入的第一行包含一个正整数 $N$,表示折痕的条数。保证 $1\le N\le 5000$。 输入的第二行包含一个字符串 $s$,按顺序表示每条折痕。保证 $|s|=N$,且 $s$ 仅由 `v` 和 `^` 组成。

输出格式

输出仅一行,包括两个非负整数,分别表示最少的折叠次数和最小化折叠次数的前提下的最小不对称程度,两个数之间用一个空格隔开。

说明/提示

### 样例 \#1 解释 如果先沿着中间的折痕对折,那么两侧的纸恰好重合,此时再对折一次即可将说明书折叠整齐。 ### 子任务 对于所有数据,保证 $1\le N\le 5000$,$|s|=N$ 且 $s$ 仅由 `v` 和 `^` 组成。 ### 题目使用协议 来自 THUPC2024(2024年清华大学学生程序设计竞赛暨高校邀请赛)初赛。 以下『本仓库』皆指 THUPC2024 初赛 官方仓库([https://github.com/ckw20/thupc2024_pre_public](https://github.com/ckw20/thupc2024_pre_public)) 1. 任何单位或个人都可以免费使用或转载本仓库的题目; 2. 任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这些题目盈利或给这些题目添加特殊权限; 3. 如果条件允许,请在使用本仓库题目时同时提供数据、标程、题解等资源的获取方法;否则,请附上本仓库的 github 地址。