loj#P3333. 「BalticOI 2020」混合物
「BalticOI 2020」混合物
题目描述
题目译自 BalticOI 2020 Day1 B「Mixture」
Serge 是著名餐厅「胡椒盐蒜」的主厨。他正尝试评得米其林一星厨师。他被告知一位密探计划今晚前往他的餐厅。
即使 Serge 不知道这位密探的姓名,他也十分确信密探会点菜单上的哪道菜,也知道他偏好的口味是什么。也就是说,密探点的菜里,添加的盐,胡椒粉和大蒜粉的比例需要十分精确。
Serge 在厨房的特殊原料架上放有一些调味瓶,里面放有盐,胡椒粉和大蒜粉的调味料。对于每瓶混合物,他都知道每种原料的总量(单位:千克)。Serge 可以混合任意数量的调味瓶中的调味料(也可以只用一个)来获得一道菜中需要添加且比例适当的调味料。
幸运的是,每道菜中需要添加的调味料的总量远小于调味瓶中的调味料量,所以你可以假设所有调味瓶中的调味料量都是充足的。然而,描述每瓶调味料中三种原料的比例数值可能很大。
Serge 想知道利用可用的调味瓶中的调味料,能否混合出符合密探口味的调味料。若能,他还想知道至少用多少瓶调味料可以混合出这种调味料。
此外,架子上的调味瓶可能因为 Serge 获得了新的调味瓶或他把调味瓶借给了别的厨师而多次变动。所以他想在每次改变之后都回答以上问题。
例如,假设最符合密探口味的调味料比例是 ,架子上有三个调味瓶,调味料比例如下:
调味料 | 盐 | 胡椒粉 | 大蒜粉 |
---|---|---|---|
为了获得想要的调味料,可以等量混合前两瓶调味料。如果第二瓶调味料被撤走,就无法得到想要的调味料了。
请编写程序帮助 Serge 解决这一问题。
输入格式
第一行三个非负整数 ,表示密探最喜欢的调味料中盐,胡椒粉和大蒜粉的总量。对于任意实数 , 也是密探最喜欢的调味料。
第二行一个正整数 ,表示原料架上调味瓶改变的次数。你可以假设初始时原料架上没有调味瓶。
接下来 行,每行描述一次原料架上调味瓶的变化:
- 如果一个新调味瓶加入,则这一行包含一个大写字母
A
,接着有三个非负整数 ,表示放上原料架的调味瓶中盐,胡椒粉和大蒜粉的总量。添加的调味瓶从 开始连续编号,并且不会重复。也就是说,输入数据中第 个添加的调味瓶编号为 。 - 如果某个调味瓶被从原料架上移除,则这一行包含一个大写字母
R
,接着有一个整数 ,表示被移除的调味瓶编号。所有移除的调味瓶编号互不相同,并且 不会超过目前添加的调味瓶总数。
输出格式
输出 行,第 行应包含一个数字 ,表示在经过前 次调味瓶改变后,为获得密探最喜欢的调味料至少需要混合多少瓶调味料。如果不能获得,则输出 。
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$。
详细子任务附加限制及分值如下表:
子任务编号 | 附加限制 | 分值 |
---|---|---|
无附加限制 |