#P16247. [IIOT2022]Best Ice Cream Flavours最佳冰淇淋口味

[IIOT2022]Best Ice Cream Flavours最佳冰淇淋口味

题目描述

商店出售 NN 种冰淇淋口味,第 ii 种口味由字符串 FiF_i 表示。

购买一杯冰淇淋时,顾客选择一个非空字符串 ss,这一杯会包含所有名称以 ss 为前缀的口味。

对于每个 k=1,2,,Nk=1,2,\ldots,N,Filippo 希望恰好买到前 kk 种口味

F0,F1,,Fk1,F_0,F_1,\ldots,F_{k-1},

而不能买到 Fk,Fk+1,,FN1F_k,F_{k+1},\ldots,F_{N-1}。同一种口味可以被多杯重复包含,但仍只算一种口味。

求每个 kk 所需杯数的最小值。

输入格式

第一行一个整数 NN

接下来 NN 行,每行一个字符串 FiF_i

输出格式

输出 NN 行。第 kk 行表示恰好购买前 kk 种口味所需的最少杯数。

数据范围

  • 2N1000002\le N\le100000
  • 字符串仅包含小写英文字母;
  • 所有字符串总长度不超过 20000002000000
  • 所有口味名称互不相同;
  • 保证对每个 kk 都存在合法购买方案。

子任务

子任务 分值 限制
1 0 样例
2 22 N10N\le10,总长度不超过 100100
3 24 N500N\le500,总长度不超过 1000010000
4 23 口味名称已按字典序排列
5 31 无额外限制

样例 1

输入
5
chocolate
coffee
cookies
pistachio
strawberry

输出
1
2
1
2
3

样例 2

输入
10
orange
peanutbutter
mango
mint
cheesecacke
coconut
oreo
cherry
peppermint
watermelon

输出
1
2
3
3
4
5
5
4
4
5