#5952. 加减乘除
加减乘除
题目背景
小C有一个整数序列,他需要对这个序列进行一系列复杂的操作,最后统计特定范围内的元素个数。这可难倒了他,快来帮帮他吧!
题目描述
小C有一个长度为 的整数序列 ,他需要处理 次操作,操作共分为以下两类:
-
操作 1:包含一个非负整数 和两个正整数 和 。对于所有大于或等于 的元素,需要先将其加上 ,然后再乘以 。即对于一个值为 且满足 的元素,在此操作后它变为:
-
操作 2:包含一个非负整数 和两个正整数 和 。对于所有小于或等于 的元素,需要先将其减去 ,然后再除以 ,并向零截断。即对于一个值为 且满足 的元素,在此操作后它变为:
其中, 表示向零截断 得到的整数。“向零截断”意味着直接去掉小数部分,使结果向零靠近。例如,截断 得到 ,而截断 得到 。
在依次应用了 次操作之后,请问数组中有多少元素在 到 的范围内(即满足 )?
输入格式
第一行包含四个整数 ,分别表示数组的长度、操作的次数、以及需要统计的范围 。
第二行包含 个整数 ,表示数组 的初始状态。
接下来 行,每行包含四个整数 ,表示第 次操作的类型和参数。
输出格式
输出一行一个整数,表示在处理完所有操作后,数组中满足 的元素个数。
样例 #1
样例输入 #1
3 3 3 10
1 -2 3
1 2 2 3
2 20 1 3
2 1 20 5
样例输出 #1
1
样例 #2
样例输入 #2
10 10 -344 949304959823841996
-3322545 4925407 1739804 2427239 -5261662 -5616033 -8030330 6212172 8586142 5029512
1 16392506 3 3
1 32437 46 3
1 27923410 74 5
1 579357460 33 5
2 2620867453 17 1
2 3538613740 16 1
1 3046695459 20 3
1 2820482772 12 2
1 3554938917 20 5
2 91948363102 2 1
样例输出 #2
6
数据范围与提示
对于全部测试数据,保证:
- 在处理操作的过程中,数组中任何元素的绝对值不会超过 。
部分测试点约定:
- 对于 的测试数据,满足 ;
- 另有 的测试数据,满足 (即只有操作 1)。