#test001. 任性的店
任性的店
No testdata at current.
No submission language available for this problem.
任性的店
题目背景
附近开了家任性的小店。店主是一个任性的人,在他的店里,商品的价格会随着他心情变化而变化,且商品是否可以出售取决于一定的规则。
题目描述
店主对每个商品从 到 进行编号,每次选择编号范围从 到 的商品进行涨价或降价,每个商品的初始价格为0。
为了简化操作,他指定了一个规则:每天想出三个数字,分别是 ,,。若物品的价格乘以它的编号,对 取模后如果还在店主给出的 范围内,则表示这个商品正在出售。这样,他每天只需要想三个数字就好了。
同时,为了时刻查看商品的售卖状况,他会随机地对部分范围内的商品进行查询,观察这个范围内有几个商品正在出售。 为了方便描述,我们用代号 代表店主涨价/降价操作;用代号 代表店主查询操作。
- :
L, R, X表示把 这个区间加上
(数组的从L到R的每个元素都加上X)
- :
L, R表示询问 这个区间中元素 满足 的 这样的数的个数( i 是数组下标)
(元素的值*数组下标 %mod 在 min 到 max 范围内)
总操作次数,不会超过 1000 次
而对每一个进店的顾客来说,同样也需要知道店内有什么商品正在售卖。假设今日有 个顾客进店,每个顾客都给出了一个查询范围。现在,身为店员的你工作非常简单,只需要告诉店主/顾客,在他们给出的范围内有几个商品正在出售。
输入格式
第一行给出 , , , , 分别表示商品数量,店主操作次数,取模,最小值和最大值。
接下来的 行,给出 个操作,包括:
- :
L,R,X表示区间加,保证 在 范围内(<2147483647) - :
L,R表示区间,查询 正在售出的商品个数
再给出一个 值,表示后面有 个询问
接下来的 行,给出 , 表示区间,查询 之间正在出售的商品个数
输出格式
每行对于每个 操作输出 个数表示每次询问的值,
下面 行表示 个询问的值
样例 #1
样例输入 #1
3 2 4 0 2
A 1 3 5
Q 2 3
5
1 3
2 3
1 1
2 2
3 3
样例输出 #1
1
2
1
1
1
0
样例 #2
样例输入 #2
17 25 4098 310 2622
A 10 16 657212040
A 4 15 229489140
A 1 2 -433239891
A 3 12 532385784
A 10 17 56266644
A 8 10 10038874
A 6 9 13084764
A 4 5 -9206340
Q 2 8
A 2 4 -43223955
A 6 9 31478706
A 2 4 189818310
A 2 8 179421180
A 2 8 40354938
Q 8 14
A 3 6 57229575
A 6 13 132795740
A 2 17 14558022
A 14 15 -552674185
A 5 11 -1104138
Q 2 12
Q 1 14
A 3 9 524902182
A 8 12 114291440
A 3 7 107531442
1
11 12
样例输出 #2
3
6
7
8
2
样例 #3
样例输入 #3
20 3 4317 1020 2232
A 8 15 -434078222
A 1 2 54988154
A 13 19 81757858
15
7 11
3 5
3 9
6 9
9 13
6 19
1 20
3 5
3 10
1 7
2 14
6 10
2 3
2 3
10 12
样例输出 #3
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
提示
样例说明
给出样例1的解释:
样例1中,数组修改为,,
每个% 的值为, ,
对于 的询问
询问,中大于等于0小于等于2的个数为2个
剩下的询问类似
题目说明
注意:关于负数取模问题,请以 c++ 的向0取整为标准。
即如:[ % ] [ % ]
数据范围
题目保证店主的 操作次数不会超过 1000 次。
。
。
。