loj#P3333. 「BalticOI 2020」混合物

「BalticOI 2020」混合物

题目描述

题目译自 BalticOI 2020 Day1 B「Mixture

Serge 是著名餐厅「胡椒盐蒜」的主厨。他正尝试评得米其林一星厨师。他被告知一位密探计划今晚前往他的餐厅。

即使 Serge 不知道这位密探的姓名,他也十分确信密探会点菜单上的哪道菜,也知道他偏好的口味是什么。也就是说,密探点的菜里,添加的盐,胡椒粉和大蒜粉的比例需要十分精确。

Serge 在厨房的特殊原料架上放有一些调味瓶,里面放有盐,胡椒粉和大蒜粉的调味料。对于每瓶混合物,他都知道每种原料的总量(单位:千克)。Serge 可以混合任意数量的调味瓶中的调味料(也可以只用一个)来获得一道菜中需要添加且比例适当的调味料。

幸运的是,每道菜中需要添加的调味料的总量远小于调味瓶中的调味料量,所以你可以假设所有调味瓶中的调味料量都是充足的。然而,描述每瓶调味料中三种原料的比例数值可能很大。

Serge 想知道利用可用的调味瓶中的调味料,能否混合出符合密探口味的调味料。若能,他还想知道至少用多少瓶调味料可以混合出这种调味料。

此外,架子上的调味瓶可能因为 Serge 获得了新的调味瓶或他把调味瓶借给了别的厨师而多次变动。所以他想在每次改变之后都回答以上问题。

例如,假设最符合密探口味的调味料比例是 1:1:11:1:1,架子上有三个调味瓶,调味料比例如下:

调味料 胡椒粉 大蒜粉
11 1010 2020 3030
22 300300 200200 100100
33 1212 1515 2727

为了获得想要的调味料,可以等量混合前两瓶调味料。如果第二瓶调味料被撤走,就无法得到想要的调味料了。

请编写程序帮助 Serge 解决这一问题。

输入格式

第一行三个非负整数 Sf,Pf,GfS_f,P_f,G_f,表示密探最喜欢的调味料中盐,胡椒粉和大蒜粉的总量。对于任意实数 α>0\alpha>0(αSf,αPf,αGf)(\alpha S_f,\alpha P_f,\alpha G_f) 也是密探最喜欢的调味料。

第二行一个正整数 NN,表示原料架上调味瓶改变的次数。你可以假设初始时原料架上没有调味瓶。

接下来 NN 行,每行描述一次原料架上调味瓶的变化:

  • 如果一个新调味瓶加入,则这一行包含一个大写字母 A,接着有三个非负整数 Si,Pi,GiS_i,P_i,G_i,表示放上原料架的调味瓶中盐,胡椒粉和大蒜粉的总量。添加的调味瓶从 11 开始连续编号,并且不会重复。也就是说,输入数据中第 ii 个添加的调味瓶编号为 ii
  • 如果某个调味瓶被从原料架上移除,则这一行包含一个大写字母 R,接着有一个整数 rir_i,表示被移除的调味瓶编号。所有移除的调味瓶编号互不相同,并且 rir_i 不会超过目前添加的调味瓶总数。

输出格式

输出 NN 行,第 j (1jN)j\ (1\le j\le N) 行应包含一个数字 xjx_j,表示在经过前 jj 次调味瓶改变后,为获得密探最喜欢的调味料至少需要混合多少瓶调味料。如果不能获得,则输出 00

1 2 3
6
A 5 6 7
A 3 10 17
R 1
A 15 18 21
A 5 10 15
R 3
0
2
0
2
1
1

数据范围与提示

对于所有数据,$S_f, P_f, G_f\ge 0, 0<S_f+P_f+G_f\le 10^6; S_i, P_i, G_i\ge 0, 0<S_i+P_i+G_i\le 10^6,N\le 10^5$。

详细子任务附加限制及分值如下表:

子任务编号 附加限制 分值
11 N50,0<Si+Pi+Gi102N\le 50,0<S_i+P_i+G_i\le 10^2 1313
22 N500,0<Si+Pi+Gi103N\le 500,0<S_i+P_i+G_i\le 10^3 1717
33 N5×103,0<Si+Pi+Gi104N\le 5\times 10^3,0<S_i+P_i+G_i\le 10^4 3030
44 无附加限制 4040