题目描述
给定长度为 $n$ 的序列(数据随机生成),支持两种操作共 $q$ 次:操作一,把区间 $[l,r]$ 内所有数赋值为 $v$;操作二,查询区间 $[l,r]$ 的和。请使用 ODT(珂朵莉树)等适合随机数据的结构。
输入格式
第一行两个整数 $n,q$;第二行 $n$ 个整数;接下来 $q$ 行,每行为 1 l r v 或 2 l r。
输出格式
对每个操作二输出一行一个整数。
数据范围
$$1 \le n,q \le 10^6,\ 0 \le a_i,v \le 10^9$$