#P5757. [NOI2000] 古城之谜

[NOI2000] 古城之谜

题目描述

著名的考古学家石教授在云梦高原上发现了一处古代城市遗址。让教授欣喜的是在这个他称为冰峰城 (Ice-Peak City) 的城市中有 1212 块巨大石碑,上面刻着用某种文字书写的资料,他称这种文字为冰峰文。然而当教授试图再次找到冰峰城时,却屡屡无功而返。

幸好当时教授把石碑上的文字都拍摄了下来,为了解开冰峰城的秘密,教授和他的助手牛博士开始研究冰峰文,发现冰峰文只有陈述句这一种句型和名词 (n) 、动词 (v) 、辅词 (a) 这三类单词,且其文法很简单:

在研究了大量资料后,他们总结了一部冰峰文词典,由于冰峰文恰好有 2626 个字母,为了研究方便,用字母 aazz 表示它们。

冰峰文在句子和句子之间以及单词和单词之间没有任何分隔符,因此划分单词和句子令石教授和牛博士感到非常麻烦,于是他们想到了使用计算机来帮助解决这个问题。假设你接受了这份工作,你的第一个任务是写一个程序,将一篇冰峰文文章划分为最少的句子,在这个前提下,将文章划分为最少的单词。

输入格式

  • 11 行为词典中的单词数 nnn1000 n \le 1000 )。
  • 22 行至第 (n+1)(n+1) 行每行表示一个单词,形为 "α.mot""α.mot"αα 表示词性,可能是 n (名词), v(动词), a(辅词)中的一个, motmot 为单词,单词的长度不超过 2020 。拼写相同而词性不同的单词视为不同的单词,如输入示例中的 n.kick 与 v.kick 是两个不同的单词。
  • 输入文件第 (n+2)(n+2) 行为需要划分的文章,以 "." 结束。
  • 输入文件中的文章确保为冰峰文。文章是由有限个句子组成的,每个句子只包含有限个单词。文章长度不超过 5KB。

输出格式

  • 为两行,每行一个整数。
  • 11 行为划分出来的句子数。
  • 22 行为划分出来的单词数。
11
n.table
n.baleine
a.silly
n.snoopy
n.sillysnoopy
v.is
v.isnot
n.kick
v.kick
a.big
v.cry
sillysnoopyisnotbigtablebaleinekicksnoopysillycry.

2
9

提示

样例说明

(为了阅读方便,划分的单词用空格分隔,在单词的右上角标出它的词性,每行写一个句子,用句号表示句子结束。)

输出对应的划分:

$ sillysnoopy^n \quad isnot^v \quad big^a \quad table^n. \\ baleine^n \quad kick^v \quad snoopy^n \quad silly^a \quad cry^v. $

如果用下面的划分:

$ silly^a \quad snoopy^n \quad isnot^v \quad big^a \quad table^n. \\ baleine^n \quad kick^v \quad snoopy^n \quad silly^a \quad cry^v.$

则划分的句子数仍为 22 个,但单词数却多了 11 个,为 1010 个,显然应该按前者而不是后者划分。