QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 256 MB Total points: 100

#8801. 两根长糖果棒

Statistics

Byteasar 在 Byteburg 开了一家糖果店。所有的孩子都喜欢甜食,但小 Byteburger 们最喜欢的是草莓香草味糖果棒。这些糖果棒由交替的口味(香草和草莓)的片段组成,得益于 Byteasar 的秘方,这些片段的长度可以是任意的。

Bitie 和 Bytie 经常光顾这家店,每次每人买一根著名的糖果棒。除非 Byteasar 卖给他们的两块糖果是“口味等价”的,即草莓味片段的总长度相同,且香草味片段的总长度也相同,否则孩子们会立刻争论哪一块更好。孩子们不太在意片段的实际排列——对他们来说,每种口味的总量才是最重要的。

Bitie 和 Bytie 现在正走进店里,而 Byteasar 手头正好只有两根长糖果棒。他打算折断这两根糖果棒(同时进行,一手一根!),使得 Bitie 得到第一根糖果棒的一块,而 Bytie 得到第二根糖果棒的一块,并且这两块糖果是口味等价的。Byteasar 可以给每个孩子他所对应糖果棒的任意连续(即未折断的)片段。为此,他可以在任何位置多次折断糖果棒,而不一定非要在片段的边界处折断。

请帮助 Byteasar 确定他应该如何折断每根糖果棒,以便他卖给两个孩子每人一块,使得这两块糖果口味等价,且它们的(共同)长度最大化。

输入格式

两根长糖果棒的描述依次通过标准输入给出,每根糖果棒的格式如下: 第一行包含一个正整数 $m$,表示该糖果棒的片段数量。接下来 $m$ 行,第 $i$ 行包含一个字符 $t_i$ 和一个正整数 $a_i$,中间用空格隔开。字符 $t_i$ 指定了片段的口味:'T' 代表草莓(波兰语为 truskawka),'W' 代表香草(波兰语为 wanilia)。数字 $a_i$ 指定了片段的长度(以厘米为单位)。你可以假设相邻两个片段的口味不同。

输出格式

你的程序应向标准输出打印一个整数(占一行):可以从每根糖果棒上折下的口味等价片段的最大(共同)长度。

样例

输入格式 1

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

输出格式 1

13

说明

Byteasar 可以卖给孩子们每块 7 厘米香草味和 6 厘米草莓味的糖果。从第一根糖果棒中,他应该丢弃 3 厘米的草莓味部分(可以任意分布在两端),而从第二根糖果棒中,他应该丢弃 5 厘米的香草味部分(同样可以任意分布在两端)。

样例测试

1ocen:第一根糖果棒的第一段是 30 厘米的香草味,后续片段长度均为 1 厘米;第二根糖果棒由交替的草莓和香草片段组成,长度分别为 1 厘米和 2 厘米。第一根糖果棒包含 5 个片段,第二根包含 8 个片段。正确答案为 8。

2ocen:每根糖果棒各有 10 个片段,草莓和香草交替。第一根糖果棒的片段长度依次为 (1, 2, 3, ..., 10),第二根为 (10, 9, 8, 7, 6, 1, 2, 3, 4, 5)。正确答案为 50。

3ocen:每根糖果棒各有 1000 个片段,第一根以草莓开头,第二根以香草开头,且每根糖果棒的所有片段长度均为 1 厘米。正确答案为 1000。

评分标准

测试集由以下子任务组成。每个子任务内可能包含多个测试点。 下表中,$m_{\max}$ 表示糖果棒的最大片段数,$n_{\max}$ 表示糖果棒的最大长度。在每个测试点中,均满足 $n_{\max} \le 10^9$,$m_{\max} \le 1000$。

子任务 属性 分值
1 $n_{\max} \le 150$ 8
2 $n_{\max} \le 3000$ 12
3 $n_{\max} \le 500\,000, m_{\max} \le 150$ 12
4 $m_{\max} \le 150$ 8
5 $n_{\max} \le 500\,000, m_{\max} \le 300$ 15
6 $m_{\max} \le 300$ 9
7 $n_{\max} \le 500\,000$ 21
8 无额外限制 15

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.