#P15698. [2018 KAIST RUN Spring] Segmentation

[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{ 均为整数。})$

xx 轴代表近期度,yy 轴代表频率。所有在线用户根据其连接记录被赋予 rrff 值,并被分类为以下十二种状态之一:

  • “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, f) 位于两个或更多分类边界上,则遵循 (r0.5,f0.5)(r - 0.5, f - 0.5) 的分类。例如,如果 (r,f)(r, f) 的值为 (r4,f2)(r_4, f_2),则被分类为 “Hibernating”;如果值为 (r3,f4)(r_3, f_4),则被分类为 “Loyal Customer”。

你想要调查一个对 RUN 感兴趣的用户状态,因此你尝试按以下方式安装程序:

  • rr:如果当前时间为 tt,则 r=t(最近访问时间)r = t - \text{(最近访问时间)}
  • ff:访问次数

给定网站用户的事件,编写一个程序,根据上图对用户进行分类。

输入格式

第一行包含四个由空格分隔的整数 r1,r2,r3,r4r_1, r_2, r_3, r_4

第二行包含四个由空格分隔的整数 f1,f2,f3,f4f_1, f_2, f_3, f_4

第三行包含一个整数 NN

接下来 NN 行按时间顺序给出事件,其中第 ii 个元素表示发生在时间 ii 的事件。

每个事件由空格分隔的 AABB 给出,其中 BB 是用户名,不包含空格且最多由 10 个字母组成。AA 的值为 1122,其中 11 表示用户进入网站,22 表示你需要输出该用户的分类。

输出格式

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

1 2 3 4
1 2 3 4
8
1 RUN
1 Alex
2 Alex
1 RUN
1 RUN
1 Alex
2 Alex
2 RUN
New Customer
Potential Loyalist
Need Attention

提示

在时间 33,Alex 的连接状态为 f=1f = 1(首次访问),r=1r = 1(时间 32=13 - 2 = 1)。因此,Alex 被分类为 “New Customer”。

在时间 77,Alex 的连接状态为 f=2f = 2(第二次访问),r=1r = 1(时间 76=17 - 6 = 1)。因此,Alex 被分类为 “Potential Loyalist”。

在时间 88,RUN 的连接状态为 f=3f = 3(第三次访问),r=3r = 3(时间 85=38 - 5 = 3)。因此,RUN 被分类为 “Need Attention”。

数据范围

  • 1N100,0001 \le N \le 100,000
  • 0<r1<r2<r3<r410,0000 < r_1 < r_2 < r_3 < r_4 \le 10,000
  • 0<f1<f2<f3<f410,0000 < f_1 < f_2 < f_3 < f_4 \le 10,000

翻译由 DeepSeek V3.2 完成