比赛场次 592
比赛名称 20231007练习
比赛状态 已结束比赛成绩
开始时间 2023-10-07 17:00:00
结束时间 2023-10-07 22:00:00
开放分组 全部用户
注释介绍
题目名称 数列操作
输入输出 hihocoderD.in/out
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar┭┮﹏┭┮ TTTTTTTTTT 10.000 s 6.50 MiB 0
Gravatar小金 TTTWTTTTTT 10.000 s 7.26 MiB 0

数列操作

★★★★   输入文件:hihocoderD.in   输出文件:hihocoderD.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】


给定一个长度为n的序列A,你还有一个长度为n的数组B,最开始B的所有值都是0,接下来有m次操作,操作有四种:

1.给定l,r,x,把区间[l,r]中的所有数变成max(A_i,x)

2.给定l,r,x,把区间[l,r]中的所有数变成min(A_i,x)

3.给定l,r,x,把区间[l,r]中的数都加上x。

4.给定l,r,询问B数组的区间和。

在每次操作后,对于每一个i,如果A_i发生了变化(即权值和修改前不同),那么就把B_i加上一,否则B_i的值不变。


【输入格式】

第一行两个整数n,m。接下来一行n个整数表示数组A。

接下来m行,每行第一个1到4的整数表示操作种类,如果是前三类,接下来是三个整数l,r,x,否则接下来两个整数l,r。

【输出格式】

对于每个第四种操作,输出一行表示答案

【样例输入】

3 4
1 2 3
1 1 3 3
4 1 3
2 1 3 -1
4 1 3

【样例输出】

2
5

【样例说明】

在此键入。

【数据规模与约定】

n,m<=100000 操作1,2中x以及A_i的绝对值不超过10^9,操作3中x的绝对值不超过10^4

【来源】

在此键入。