#P12769. [POI 2018 R3] 两根长棒 Two long candy sticks

[POI 2018 R3] 两根长棒 Two long candy sticks

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXV Olimpiada Informatyczna — III etap Dwa długie lizaki

Bajtazar 在巴托城经营一家糖果店,当地儿童最爱的是草莓香草棒棒糖。这些棒棒糖由不同长度的段组成,每段为单一口味,香草和草莓交替出现。

Bitek 和 Bajtok 来到店里,每人想买一支棒棒糖。Bajtazar 知道,若卖给他们的棒棒糖草莓和香草的含量不同,两个男孩定会争吵谁的更好。他们并不在意段的顺序或长度,只求总量相同。

店内恰有两支长序列棒棒糖,Bajtazar 想从第一支取一段卖给 Bitek,第二支取一段卖给 Bajtok。他允许在段内断裂,但卖出的片段需保持完整。

请帮助 Bajtazar 确定如何分割两支棒棒糖,使卖给男孩的片段尽可能长,且草莓与香草含量完全相同。

输入格式

输入依次描述两支长序列棒棒糖,格式相同。每支棒棒糖的描述如下:

第一行包含一个正整数 mm,表示棒棒糖的段数。

接下来的 mm 行,每行包含一个字符 tit_i 和一个正整数 aia_i,表示第 ii 段的类型:T 表示草莓,W 表示香草;aia_i 表示该段长度(单位:厘米)。

保证相邻两段类型不同。

输出格式

输出一行,包含一个整数,表示可从两支棒棒糖各取一段的最大长度,且两段草莓及香草含量相同。

3
T 5
W 7
T 4
3
W 6
T 6
W 6
13

提示

样例 1 解释

Bajtazar 可卖给男孩各含 11 厘米草莓和 22 厘米香草的片段。从第一支棒棒糖取整支(长度 33 厘米,22 厘米草莓,11 厘米香草)。从第二支棒棒糖取前 33 厘米(11 厘米香草,22 厘米草莓)。

附加样例

  1. 第一支棒棒糖首段为香草,长度 3030 厘米,后续段 11 厘米,m=3m=3;第二支棒棒糖草莓、香草段交互,长度 1,21,2 厘米,m=5m=5,正确结果为 88
  2. 两支棒棒糖各 m=10m=10,草莓、香草段交替出现,第一支段长 1,2,3,,101,2,3,\ldots,10,第二支 2,1,4,3,6,5,8,7,9,102,1,4,3,6,5,8,7,9,10,正确结果为 1515
  3. 两支棒棒糖各 m=1000m=1000,第一支自草莓始,第二支自香草始,所有段长 11 厘米,正确结果为 10001000

mmaxm_{\text{max}} 表示输入的最大段数,nmaxn_{\text{max}} 表示棒棒糖的最大总长度。保证每个测试点满足 nmax109,mmax105n_{\text{max}} \leq 10^9, m_{\text{max}} \leq 10^5

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 nmax15n_{\text{max}} \leq 15 1515
22 nmax3000n_{\text{max}} \leq 3000 1212
33 nmax500000,mmax15n_{\text{max}} \leq 500000, m_{\text{max}} \leq 15 1515
44 mmax150m_{\text{max}} \leq 150 88
55 $n_{\text{max}} \leq 500000, m_{\text{max}} \leq 300$ 1515
66 mmax300m_{\text{max}} \leq 300
77 nmax5000000n_{\text{max}} \leq 5000000 1010
88 无附加限制 3030