P15698 [2018 KAIST RUN Spring] Segmentation
题目描述
ZOYI 正在开发一款名为 Channel 的工具,该工具提供了与网站在线用户交流的功能。最近,ZOYI 引入了 RF(近期度 / 频率)模型来区分使用 Channel 的用户,并决定通过以下计算对用户进行分类。
:::align{center}

:::
图: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 完成