- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
صورت این سوال نسبتاً طولانی بود و نمیتوانستیم شخصیت خاصی را داخلش جا بدهیم، اما نوبت باب است و اگر در سوال نباشد ناراحت میشود پس مجبور شدیم یک جایی در این سوال اسمش را بیاوریم.
قدرت دنبالهی اعداد $a_1,a_2,...,a_n$ برابر مجموع زیبایی تمام افراز های آن به تعدادی بخش (نه لزومن متوالی) است.
زیبایی افراز یک دنباله به تعدادی بخش برابر: $$\sum_{i=1}^k s_{i} \times p_{c_{i}}$$ است که در آن $s_i$ برابر مجموع اعداد بخش $i$-ام از افراز است و $c_i$ برابر تعداد اعضای بخش $i$-ام از افراز است و $k$ تعداد بخشهای افراز است و $p_1,p_2,...,p_n$ دنباله دیگری است که به صورت جداگانه در ورودی داده میشود. دقت کنید که اعداد برچسبدار هستند، یعنی دو عدد برابر در دنباله متفاوت هستند. برای مثال در دنبالهی $[1,2,2]$ افراز $[[1,2],[2]]$ دو بار شمارده میشود، یک بار برای اوّلین $2$ یک بار هم برای دوّمین $2$ شمارده میشود.
در هر عملیات ما میتوانیم دو عضو از آرایه را انتخاب کنیم و $m$ واحد (عددی صحیح دلخواه) به یکی از آنها اضافه کنیم و $m$ واحد از دیگری کم کنیم (بعد از یک عملیات ممکن است عضوی از آرایه منفی شود).
قدرت محض یک آرایه را بیشترین میزان قدرت آرایه پس از انجام تعدادی دلخواه از عملیات بالا مینامیم. دقّت کنید که پس از انجام عملیات بالا برای بدست آوردن قدرت محض، دنباله به حالت اوّلیه بازمیگردد.
باب به شما دنبالهی $a_1,a_2,...,a_n$ و دنبالهی $p_1,p_2,...,p_n$ را داده است و سپس $q$ درخواست به شما میدهد، که هر درخواست به یکی از اشکال زیر است :
- به شما سه عدد $l \ r \ x$ داده میشود و از شما میخواهد که تمام اعداد $a_{l},...,a_r$ را $x$ واحد افزایش دهید.
- به شما دو عدد $l \ r$ داده میشود و از شما میخواهد که قدرتمحض دنبالهی $a_{l},...,a_r$ را خروجیدهید.
به دلیل این که قدرتمحض دنباله میتواند بزرگ باشد، باقیماندهاش را در تقسیم آن بر $10^9+7$ را خروجی دهید. دقت کنید که فقط در انتها باقیمانده گرفته میشود و در تمام مراحل بدست آوردن قدرتمحض، خود اعداد در نظر گرفته میشوند و بزرگی باقیمانده آنها در تقسیم بر $10^9+7$ مد نظر نیست.
ورودی
در خط اول ابتدا $n$ که تعداد اعضای دنبالهی $a$ و $p$ است و سپس $q$ که تعداد درخواستها است داده میشود. سپس در خط بعدی $n$ عدد به شما داده میشود که عدد $i$-ام همان $a_i$ است. سپس در خط بعدی $n$ عدد به شما داده میشود که عدد $i$-ام همان $p_i$ است. سپس در $q$ خط بعدی به شما درخواستها داده میشود که به صورت زیر داده میشود:
- به صورت $1 \ l \ r \ x$ داده میشود که همان درخواست نوع اول است.
- به صورت $2 \ l \ r$ داده میشود که همان درخواست نوع دوم است.
$$1 \le n \le 5 \ 000$$ $$1 \le q \le 500 \ 000$$ $$0 \le a_i,p_i,x \le 10^9$$ $$1\le l \le r \le n$$
خروجی
در خروجی به ازای هر درخواست نوع دوم باقیمانده قدرتمحض آن بخش خواستهشده بر $10^9+7$ را چاپ کنید.
مثال
ورودی نمونه ۱
3 3
1 2 3
6 3 2
2 1 3
1 1 3 1
2 1 3
خروجی نمونه ۱
120
180
توضیح برای درخواست اوّل: اگر دنباله را به $[3,0,3]$ تبدیل کنیم، قدرت آن ماکسیمم میشود:
- قدرت $[[3,0,3]]$ برابر $12$ است.
- قدرت $[[3,0],[3]]$ برابر $27$ است.
- قدرت $[[0,3],[3]]$ برابر $27$ است.
- قدرت $[[3,3],[0]]$ برابر $18$ است.
- قدرت $[[3],[0],[3]]$ برابر $36$ است.
که قدرتمحض آن میشود : $12+27+27+18+36=120$
توضیح برای درخواست دوّم: اعضای اوّل تا سوّم دنباله یک واحد افزایش پیدا میکنند و دنبالهی $[1, 2, 3]$ به دنبالهی $[2, 3, 4]$ تغییر پیدا میکند.
توضیح برای درخواست سوّم: اگر دنباله را به $[4,0,5]$ تبدیل کنیم، قدرت آن ماکسیمم میشود:
- قدرت $[[4,0,5]]$ برابر $18$ است.
- قدرت $[[5,0],[4]]$ برابر $39$ است.
- قدرت $[[4,0],[5]]$ برابر $42$ است.
- قدرت $[[4,5],[0]]$ برابر $27$ است.
- قدرت $[[5],[0],[4]]$ برابر $54$ است.
که قدرتمحض آن میشود : $18+39+42+27+54=180$
ورودی نمونه ۲
3 3
1 2 3
6 3 3
1 1 2 2
1 1 3 3
2 1 3
خروجی نمونه ۲
399
ارسال پاسخ برای این سؤال