{"code":"arraygame","name":"Trò chơi trên mảng","description":"Vì dịch bệnh COVID19 đang diễn biến theo hướng xấu, [user:CaiWinDao] và người yêu là anh **XYZ** quyết định ở nhà tổ chức trò chơi tính nhẩm nhanh với dãy số để luyện tập cho cuộc thi Siêu trí tuệ mùa 2 :v. Anh XYZ có một mảng $A$ cho trước gồm $N$ phần tử được đánh số từ $1$ tới $N$. Ban đầu, tất cả các số trong mảng đều bằng $0$. Anh **XYZ** đưa ra $M$ truy vấn trên mảng để [user:CaiWinDao] thực hiện các phép tính nhanh, các truy vấn chỉ thuộc một trong $3$ dạng sau đây:\r\n\r\n+ `0 x y` : [user:CaiWinDao] phải đưa ra kết quả của phép tính tổng tất cả các số trong mảng $A$ từ vị trí $x$ đến vị trí $y$ theo modulo $10^9 + 7$.\r\n+ `1 x y` : [user:CaiWinDao] phải lần lượt cộng thêm $1.2.3$ vào phần thử thứ $x$, cộng thêm $2.3.4$ vào phần tử thứ $x+1$, ... , cộng thêm $(i+1).(i+2).(i+3)$ vào phần tử thứ $x+i$, ... và tiếp tục cho đến $y$.\r\n+ `2 x y` : [user:CaiWinDao] phải lần lượt trừ đi $1.2.3$ từ phần thử thứ $x$, trừ đi $2.3.4$ từ phần tử thứ $x+1, ... ,$ trừ đi $(i+1).(i+2).(i+3)$ từ phần tử thứ $x+i$, ... và tiếp tục cho đến $y$.\r\n\r\n<h4>Input</h4>\r\n\r\n- Dòng đầu : gồm 2 số $N$ và $M (1 \\le N,M \\le 10^5)$\r\n- Dòng hai đến dòng $M+1$ : gồm 3 số $x\\text{ }y\\text{ }z (0 \\le x \\le 2, 1 \\le y \\le z \\le N), x$ là loại truy vấn, $y$ và $z$ là hai đầu mút của đoạn con cần thực hiện truy vấn.\r\n\r\n<h4>Output</h4>\r\n\r\n- Với mỗi truy vấn loại $0$, in ra câu trả lời theo yêu cầu trên từng dòng riêng biệt theo thứ tự xuất hiện của truy vấn đó trong input\r\n\r\n<h4>Example</h4>\r\n\r\n!!! question \"Test 1\"\r\n\r\n    ???+ \"Input\"\r\n\r\n        ```sample\r\n        8 4\r\n        1 1 8\r\n        0 2 8\r\n        2 4 6\r\n        0 5 6\r\n        ```\r\n\r\n    ???+ success \"Output\"\r\n\r\n        ```sample\r\n        1974\r\n        462\r\n        ```\r\n        \r\n    ??? warning \"Note\"\r\n\r\n        Kết quả lần lượt sau mỗi truy vấn như sau :\r\n\r\n        - Sau truy vấn thứ nhất, giá trị của mảng lúc này là $[6,24,60,120,210,336,504,720]$\r\n\r\n        - Câu trả lời cho truy vấn thứ hai là $24+60+120+210+336+504+720=1974$\r\n\r\n        - Sau truy vấn thứ ba, giá trị của mảng lúc này là $[6,24,60,114,186,276,504,720]$\r\n\r\n        - Câu trả lời cho truy vấn thứ tư là $186+276=462$","points":500.0,"partial":false,"time_limit":2.0,"memory_limit":262144,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}