花神喜欢步行游历各国,顺便虐爆各地竞赛。花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家)。
每一次旅行中,花神会选择一条旅游路线,它在那一串国家中是连续的一段,这次旅行带来的开心值是这些国家的喜欢度的总和,当然花神对这些国家的喜欢程序并不是恒定的,有时会突然对某些国家产生反感,使他对这些国家的喜欢度变为 (可能是花神虐爆了那些国家的 OI,从而感到乏味)。
现在给出花神每次的旅行路线,以及开心度的变化,请求出花神每次旅行的开心值。
第一行是一个整数 NN,表示有 NN 个国家;
第二行有 NN 个空格隔开的整数,表示每个国家的初始喜欢度;
第三行是一个整数 MM,表示有 MM 条信息要处理;
第四行到最后,每行三个整数 x,l,rx,l,r,当 x = 1时询问游历国家 ll 到 rr 的开心值总和,就是 ,当 x = 2 时国家 ll 到 rr 中每个国家的喜欢度变为 。
每次 x=1 时,每行一个整数。表示这次旅行的开心度。
对于全部数据,
注:建议使用 sqrt 函数,且向下取整。
没跑满,然后过了(神奇)!
区间修改时不打懒标记,把区间内每个叶子节点都遍历(我不知道开根号怎么打懒标记)
然后有个小优化:
维护maxn记录当前区间最大的数,因为1,0开方和原值一样,所以当时就return;