P12769 [POI 2018 R3] 两根长棒 Two long candy sticks
题目背景
翻译来自于 [LibreOJ](https://loj.ac/p/5077)。
题目描述
**题目译自 [XXV Olimpiada Informatyczna — III etap](https://sio2.mimuw.edu.pl/c/oi25-3/dashboard/) [Dwa długie lizaki](https://szkopul.edu.pl/problemset/problem/Kmofhbw9cTx06gSZg-C5MiBU/statement/)**
Bajtazar 在巴托城经营一家糖果店,当地儿童最爱的是草莓香草棒棒糖。这些棒棒糖由不同长度的段组成,每段为单一口味,香草和草莓交替出现。
Bitek 和 Bajtok 来到店里,每人想买一支棒棒糖。Bajtazar 知道,若卖给他们的棒棒糖草莓和香草的含量不同,两个男孩定会争吵谁的更好。他们并不在意段的顺序或长度,只求总量相同。
店内恰有两支长序列棒棒糖,Bajtazar 想从第一支取一段卖给 Bitek,第二支取一段卖给 Bajtok。他允许在段内断裂,但卖出的片段需保持完整。
请帮助 Bajtazar 确定如何分割两支棒棒糖,使卖给男孩的片段尽可能长,且草莓与香草含量完全相同。
输入格式
输入依次描述两支长序列棒棒糖,格式相同。每支棒棒糖的描述如下:
第一行包含一个正整数 $m$,表示棒棒糖的段数。
接下来的 $m$ 行,每行包含一个字符 $t_i$ 和一个正整数 $a_i$,表示第 $i$ 段的类型:T 表示草莓,W 表示香草;$a_i$ 表示该段长度(单位:厘米)。
保证相邻两段类型不同。
输出格式
输出一行,包含一个整数,表示可从两支棒棒糖各取一段的最大长度,且两段草莓及香草含量相同。
说明/提示
**样例 1 解释**
Bajtazar 可卖给男孩各含 $1$ 厘米草莓和 $2$ 厘米香草的片段。从第一支棒棒糖取整支(长度 $3$ 厘米,$2$ 厘米草莓,$1$ 厘米香草)。从第二支棒棒糖取前 $3$ 厘米($1$ 厘米香草,$2$ 厘米草莓)。
**附加样例**
1. 第一支棒棒糖首段为香草,长度 $30$ 厘米,后续段 $1$ 厘米,$m=3$;第二支棒棒糖草莓、香草段交互,长度 $1,2$ 厘米,$m=5$,正确结果为 $8$。
2. 两支棒棒糖各 $m=10$,草莓、香草段交替出现,第一支段长 $1,2,3,\ldots,10$,第二支 $2,1,4,3,6,5,8,7,9,10$,正确结果为 $15$。
3. 两支棒棒糖各 $m=1000$,第一支自草莓始,第二支自香草始,所有段长 $1$ 厘米,正确结果为 $1000$。
令 $m_{\text{max}}$ 表示输入的最大段数,$n_{\text{max}}$ 表示棒棒糖的最大总长度。保证每个测试点满足 $n_{\text{max}} \leq 10^9, m_{\text{max}} \leq 10^5$。
详细子任务附加限制及分值如下表所示。
| 子任务 | 附加限制 | 分值 |
| :---: | :--: | :---: |
| $1$ | $n_{\text{max}} \leq 15$ | $15$ |
| $2$ | $n_{\text{max}} \leq 3000$ | $12$ |
| $3$ | $n_{\text{max}} \leq 500000, m_{\text{max}} \leq 15$ | $15$ |
| $4$ | $m_{\text{max}} \leq 150$ | $8$ |
| $5$ | $n_{\text{max}} \leq 500000, m_{\text{max}} \leq 300$ | $15$ |
| $6$ | $m_{\text{max}} \leq 300$ | $15$ |
| $7$ | $n_{\text{max}} \leq 5000000$ | $10$ |
| $8$ | 无附加限制 | $30$ |