bzoj#P3469. ADERA

ADERA

题目描述

Adera 是 Microsoft Windows 8 应用商店中的一款Xbox 解谜游戏,主线以女主角 Jane  Sinclair 的探险经历展开。随着探险的不断深入,Jane Sinclair 获得的物品越来越多,因此她 急需一套物品评估查询的系统。   Jane Sinclair 身上有 n 件物品,编号为 0~n-1,每件物品有一个不同于其它物品的价值, 并且可以用一些小写英文字母构成的单词来描述这件物品。Jane Sinclair 想通过这套系统查 m条信息,每条查询包含一个整数 t 和一个字符串 s。如果描述一件物品的单词中,有以 s 为前缀的单词,那么这件物品是对Jane Sinclair 有用的。她想知道在这条查询中,对她有 用的物品一共有多少个,并且她还想了解对她有用的物品中价值前 t 大的物品的编号是什么。 现在就请你帮忙设计一下这个系统吧。

输入格式

第一行两个整数 n,m,分别表示物品个数和查询条数。   接下来 n 行,每行首先是一个整数 rating ,表示该物品的价值,然后是一个整数k,表示描述该物品的单词个数;接下来 k 个小写英文字母构成的字符串,描述这件物品。   接下来 m 行,每行一个整数 ti和一个字符串 si,表示一条询问。

输出格式

对于每条询问,首先输出在这次询问中对Jane Sinclair有用的物品总个数 tot;然后按顺 序输出 t 个整数,表示对她有用的物品中价值前t大的物品的编号。如果 t>tot,只需输出tot 个即可。每行内相邻两个整数之间用一个空格隔开,行末是一个回车符,没有空格。

3 3
1 1 admin 
2 2 freda adera
3 1 adver 
10 ad 
1 f 
2 miao 

3 2 1 0 
1 1 
0 

提示

对于 100%的数据,1<=n,m<=100000 ,0<rating<=10^9,每两件物品的 rating 均不相同, 描述物品的所有单词总长度不超过100000,所有询问的 s的总长度不超过 100000,所有询 问的 t的和不超过 500000。

题目来源

Adera 2 杯省选模拟赛