{"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":"\u003cp\u003e 狄大人是有名的名侦探,他也很会判案,他常常会问元芳:”元芳,你怎么看?“\u003c/p\u003e\n\u003cp\u003e 现在有n个犯人等待被审判,每个犯人都有一个罪恶值,a\u003csub\u003e1\u003c/sub\u003e, a\u003csub\u003e2\u003c/sub\u003e, …, a\u003csub\u003en\u003c/sub\u003e,这些犯人的罪恶之最开始都是0, 但是经过狄大人的审判,n个犯人的罪恶值会有不同程度的改变,由于狄大人断案能力很强,所以他每一次判案都是直接审批一个连续区间[l, r]的犯人。\u003c/p\u003e\n\u003cp\u003e 狄大人有三个审判方式:\n\u003cbr\u003e 1:狄大人会让受审判的犯人的罪恶值增加c。\n\u003cbr\u003e 2:狄大人会让受审判的犯人的罪恶值增加 (c-1)*a,其中a是犯人原来的罪恶值。\n\u003cbr\u003e 3:狄大人会让受审判的犯人的罪恶值都变为c。\n\u003cbr\u003e 狄大人在审判犯人之后,会好奇犯人的罪恶值都是多少,因此他会询问一个区间的犯人的罪恶值。\n\u003cbr\u003e 询问4:因为只是罪恶值无法表现出犯人的罪恶程度,因此狄大人想要知道相对罪恶值b\u003csub\u003ek\u003c/sub\u003e\u003da\u003csub\u003ek\u003c/sub\u003e\u003csup\u003ep\u003c/sup\u003e的值。\n\u003cp\u003e 但是狄大人实在太忙了,因此他又去问了元芳:”元芳,你怎么看?“,元芳表示:”我坐着看。“,元芳也不知道犯人的相对罪恶值,因此就需要你来帮助狄大人找到犯人的相对罪恶值。\u003c/p\u003e"}},{"title":"Input","value":{"format":"HTML","content":"\u003cp\u003e 输入有多组数据,数据不超过10组。\u003c/p\u003e\n\u003cp\u003e 对于每一组数据,对于每一组数据,第一行输入两个数,n 和 m。表示有n个犯人,狄大人会进行m次审判。1 \u0026lt;\u003d n, m \u0026lt;\u003d 100,000。\u003c/p\u003e\n\u003cp\u003e 接下来输入m行,每一行都包含一次审判的信息,每一行输入一个数 op,表示狄大人的行为。\n\u003cbr\u003e op\u003d1, 2, 3:表示狄大人将要审判犯人,接下来输入三个数,x y c,表示狄大人审判的犯人的范围在[x,y]之间,并且审判的依据是c。\n\u003cbr\u003e op\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) \u003c/p\u003e\n\u003cp\u003e 输入 0 0时终止输入。\u003c/p\u003e\n"}},{"title":"Output","value":{"format":"HTML","content":"\u003cp\u003e 对于狄大人的每次询问,即op\u003d4,在一行种输出询问区间的所有相对罪恶值之和。答案可能很大,你只需要计算答案除以10007的余数。\u003c/p\u003e"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre\u003e\n7 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\u003e\n8\n300\u003c/pre\u003e"}},{"title":"Hint","value":{"format":"HTML","content":"\u003cp\u003e\n样例中,狄大人需要审判n个犯人,m次行为,最开始,所有犯人的罪恶值都为0,\n\u003cbr\u003e第一次行为之后:每个犯人的罪恶值为:0 0 0 0 4 4 0\n\u003cbr\u003e第二次行为之后: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\u003cbr\u003e第三次行为之后:每个犯人的罪恶值为:2 2 2 2 6 4 0\n\u003cbr\u003e第四次行为之后:每个犯人的罪恶值为:2 2 12 12 6 4 0\n\u003cbr\u003e第五次行为之后:每个犯人的罪恶值为:2 2 6 6 6 4 0\n\u003cbr\u003e第六次行为之后:每个犯人的罪恶值为:2 2 9 9 9 7 0\n\u003cbr\u003e第七次行为之后: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.\n\u003c/p\u003e"}}]}