P15698 [2018 KAIST RUN Spring] Segmentation

题目描述

ZOYI 正在开发一款名为 Channel 的工具,该工具提供了与网站在线用户交流的功能。最近,ZOYI 引入了 RF(近期度 / 频率)模型来区分使用 Channel 的用户,并决定通过以下计算对用户进行分类。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/zqfbxhwu.png) ::: 图:RF Channel 中的用户区分。横轴代表近期度,纵轴代表频率。 $(0 < f_1 < f_2 < f_3 < f_4, 0 < r_1 < r_2 < r_3 < r_4, \text{所有 } f_i \text{ 和 } r_i \text{ 均为整数。})$ $x$ 轴代表近期度,$y$ 轴代表频率。所有在线用户根据其连接记录被赋予 $r$ 和 $f$ 值,并被分类为以下十二种状态之一: - “New Customer” - “Promising” - “About to Sleep” - “Hibernating” - “Lost” - “Potential Loyalist” - “Need Attention” - “About to Leave” - “Champion” - “Loyal Customer” - “Can't Lose Them” - “None” 其中,“None” 表示该用户没有连接服务器的记录。如果 $(r, f)$ 位于两个或更多分类边界上,则遵循 $(r - 0.5, f - 0.5)$ 的分类。例如,如果 $(r, f)$ 的值为 $(r_4, f_2)$,则被分类为 “Hibernating”;如果值为 $(r_3, f_4)$,则被分类为 “Loyal Customer”。 你想要调查一个对 RUN 感兴趣的用户状态,因此你尝试按以下方式安装程序: - $r$:如果当前时间为 $t$,则 $r = t - \text{(最近访问时间)}$ - $f$:访问次数 给定网站用户的事件,编写一个程序,根据上图对用户进行分类。

输入格式

第一行包含四个由空格分隔的整数 $r_1, r_2, r_3, r_4$。 第二行包含四个由空格分隔的整数 $f_1, f_2, f_3, f_4$。 第三行包含一个整数 $N$。 接下来 $N$ 行按时间顺序给出事件,其中第 $i$ 个元素表示发生在时间 $i$ 的事件。 每个事件由空格分隔的 $A$ 和 $B$ 给出,其中 $B$ 是用户名,不包含空格且最多由 10 个字母组成。$A$ 的值为 $1$ 或 $2$,其中 $1$ 表示用户进入网站,$2$ 表示你需要输出该用户的分类。

输出格式

对于 $A$ 为 $2$ 的事件,在每行中输出该用户的分类(不包含引号)。

说明/提示

在时间 $3$,Alex 的连接状态为 $f = 1$(首次访问),$r = 1$(时间 $3 - 2 = 1$)。因此,Alex 被分类为 “New Customer”。 在时间 $7$,Alex 的连接状态为 $f = 2$(第二次访问),$r = 1$(时间 $7 - 6 = 1$)。因此,Alex 被分类为 “Potential Loyalist”。 在时间 $8$,RUN 的连接状态为 $f = 3$(第三次访问),$r = 3$(时间 $8 - 5 = 3$)。因此,RUN 被分类为 “Need Attention”。 ### 数据范围 - $1 \le N \le 100,000$ - $0 < r_1 < r_2 < r_3 < r_4 \le 10,000$ - $0 < f_1 < f_2 < f_3 < f_4 \le 10,000$ 翻译由 DeepSeek V3.2 完成