打乱字母

题目描述:

农夫约翰将按字典序排列的 N 头奶牛的名字列表贴在了牛棚的门上。

每个奶牛的名字都由一个长度介于 1 到 20 之间的由小写字母构成的唯一字符串表示。

麻烦制造者贝茜将列表中的奶牛名字重新排序打乱了列表。

此外,她还对每头奶牛的名字中的字母顺序进行了重新排列(也可能保持不变)。

给定修改过后的列表,请帮助约翰确定列表中的每个名字可能出现在原始列表中的最低和最高位置。

输入格式:

第一行包含整数 N。

接下来 N 行,按照修改过后列表的顺序,给出了修改过后的奶牛的名字。

输出格式:

共 N 行,第 i 行输出给定的第 i 个字符串在原始列表中可能的最低和最高位置。

数据范围:

1 ≤ N ≤ 50000

样例输入:

4
essieb
a
xzy
elsie

样例输出:

2 3
1 1
4 4
2 3

提示:

无论如何,字符串 “a” 必然出现在原始列表中第一个,类似的,字符串 “xzy” 必然出现在原始列表中的最后一个。

而字符串 “essieb” 和 “elsie” 都有可能位于原始列表的第 2 位或第 3 位,这取决于它们的原始字母顺序。

例如,”bessie” 和 “elsie” 分别位于 2,3 位,”sisbee” 和 “ilees” 分别位于 3,2 位。

时间限制: 1000ms
空间限制: 256MB

来源: USACO 2012 December Contest Bronze