{"trustable":false,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cscript type\u003d\u0027text/x-mathjax-config\u0027\u003eMathJax.Hub.Config({tex2jax: { inlineMath: [[\u0027$\u0027,\u0027$\u0027]] } }); \u003c/script\u003e\n\u003cscript type\u003d\u0027text/javascript\u0027 src\u003d\u0027https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\u0027\u003e\u003c/script\u003e\n\u003cscript type\u003d\u0027text/javascript\u0027\u003esetTimeout(function(){MathJax.Hub.Queue([\u0027Typeset\u0027, MathJax.Hub, \u0027left_view\u0027]);}, 2000);\u003c/script\u003e\n\u003cdiv class\u003d\"panel_content\"\u003e\n 这天,狄大人是有名的名侦探,他也很会判案,他常常会问元芳:”元芳,你怎么看?“:\n \u003cbr\u003e现在有n个犯人等待被审判,每个犯人都有一个罪恶值, a\u003csub\u003e1\u003c/sub\u003e, a\u003csub\u003e2\u003c/sub\u003e, …, a\u003csub\u003en\u003c/sub\u003e. 这些犯人的罪恶之最开始都是0, 但是经过狄大人的审判,n个犯人的罪恶值会有不同程度的改变,偷偷告诉你,因为狄大人断案能力很强,所以他每一次判案都是直接审批一个连续区间[l,r]的犯人哦。狄大人有三个审判方式。\n \u003cbr\u003e第一种审判 1: 这种审判的犯人一般是一些小案件的犯人,狄大人会让受审判的犯人的罪恶值增加c。\n \u003cbr\u003e第二种审判 2: 这种犯人一般都是一些 大案件的犯人,狄大人会让受审判的犯人的罪恶值增加 (c-1)*a,其中a是犯人原来的罪恶值。\n \u003cbr\u003e第三种审判 3:这种犯人犯的错都是法律种明确规定的,狄大人会让受审判的犯人的罪恶值都变为c。\n狄大人在审判犯人之后,会好奇犯人的罪恶值都是多少,因此他会询问一个区间的犯人的罪恶值。\n \u003cbr\u003e询问 4: 因为只是罪恶值无法表现出犯人的罪恶程度,因此狄大人想要知道相对罪恶值b\u003csub\u003ek\u003c/sub\u003e\u003da\u003csub\u003ek\u003c/sub\u003e\u003csup\u003ep\u003c/sup\u003e的值,现在狄大人想要知道一些犯人的相对罪恶值。\n \u003cbr\u003e但是狄大人实在太忙了,因此他又去问了元芳:”元芳,你怎么看?“,元芳表示:”我坐着看“,元芳也不知道犯人的相对罪恶值,因此就需要聪明又机智的你来帮助狄大人找到犯人的相对罪恶值啦。\n\u003cbr\u003e \n\u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"输入有多组数据,数据不超过10组。 \n\u003cbr\u003e对于每一组数据,对于每一组数据,第一行输入两个数,n 和 m。表示有n个犯人,狄大人会进行m次审判。1 \u0026lt;\u003d n, m \u0026lt;\u003d 100,000. \n\u003cbr\u003e接下来输入m行,每一行都包含一次审判的信息,每一行输入一个数 op,表示狄大人的行为.\nop\u003d1,2,3:表示狄大人将要审判犯人,接下来输入三个数,x y c,表示狄大人审判的犯人的范围在[x,y]之间,并且审判的依据是c。\nop\u003d4:表示狄大人想要知道犯人的相对罪恶值,接下来输入三个数,x y p,其中x y表示狄大人想要知道的犯人的范围在[x,y]之间,并且相对罪恶值b\u003csub\u003ek\u003c/sub\u003e\u003da\u003csub\u003ek\u003c/sub\u003e\u003csup\u003ep\u003c/sup\u003e。(1 \u0026lt;\u003d x \u0026lt;\u003d y \u0026lt;\u003d n, 1 \u0026lt;\u003d c \u0026lt;\u003d 10,000, 1 \u0026lt;\u003d p \u0026lt;\u003d 3) \n\u003cbr\u003e输入 0 0时终止输入。\n\u003cbr\u003e"}},{"title":"Output","value":{"format":"HTML","content":"对于狄大人的每次询问,即op\u003d4,在一行种输出询问区间的所有相对罪恶值之和。答案可能很大,你只需要计算答案除以10007的余数。"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre\u003e7 7\n1 5 6 4\n4 5 6 1\n1 1 5 2\n2 3 4 6\n3 3 4 6\n1 3 6 3\n4 1 6 2\n0 0\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre\u003e8\n300\u003c/pre\u003e"}},{"title":"Hint","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e\n样例中,狄大人需要审判n个犯人,m次行为,最开始,所有犯人的罪恶值都为0,\n第一次行为之后:每个犯人的罪恶值为:0 0 0 0 4 4 0\n第二次行为之后:b\u003csub\u003ek\u003c/sub\u003e\u003da\u003csub\u003ek\u003c/sub\u003e\u003csup\u003e1\u003c/sup\u003e。所以对于该询问,ans\u003db\u003csub\u003e4\u003c/sub\u003e+b\u003csub\u003e5\u003c/sub\u003e\u003d8.\n第三次行为之后:每个犯人的罪恶值为:2 2 2 2 6 4 0\n第四次行为之后:每个犯人的罪恶值为:2 2 12 12 6 4 0\n第五次行为之后:每个犯人的罪恶值为:2 2 6 6 6 4 0\n第六次行为之后:每个犯人的罪恶值为:2 2 9 9 9 7 0\n第七次行为之后:b\u003csub\u003ek\u003c/sub\u003e\u003da\u003csub\u003ek\u003c/sub\u003e\u003csup\u003e2\u003c/sup\u003e。所以对于该询问,ans\u003db\u003csub\u003e1\u003c/sub\u003e+b\u003csub\u003e2\u003c/sub\u003e+b\u003csub\u003e3\u003c/sub\u003e+b\u003csub\u003e4\u003c/sub\u003e+b\u003csub\u003e5\u003c/sub\u003e+b\u003csub\u003e6\u003c/sub\u003e\u003d300."}}]}