{"trustable":false,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\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 type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"MD","content":"我们需要建立一个数据库以支持实时查询和修改。这个数据库中的记录是点坐标 `(x,y)` 和其权值 `w`。查询与修改操作可以表示为\n\n- `1 x y w`,在 `(x,y)` 处插入一个新的点,我们保证在插入之前该位置没有点。\n- `2 x y`,删除 `(x,y)` 处的点,我们保证在删除之前该位置存在一点。\n- `3 x y k w`,对于每一个到 `(x,y)` 的欧几里得距离为 sqrt(k) 的点,给它的权值增加 `w`。\n- `4 x y k`,对于每一个到 `(x,y)` 的欧几里得距离为 sqrt(k) 的点,求出它们权值 `w` 的和。\n\n其中 (x\u003csub\u003e0\u003c/sub\u003e,y\u003csub\u003e0\u003c/sub\u003e) 与 (x\u003csub\u003e1\u003c/sub\u003e,y\u003csub\u003e1\u003c/sub\u003e) 的欧几里得距离为 sqrt((x\u003csub\u003e0\u003c/sub\u003e - x\u003csub\u003e1\u003c/sub\u003e)\u003csup\u003e2\u003c/sup\u003e + (y\u003csub\u003e0\u003c/sub\u003e - y\u003csub\u003e1\u003c/sub\u003e)\u003csup\u003e2\u003c/sup\u003e)"}},{"title":"输入","value":{"format":"MD","content":"输入包含多组测试样例,第一行包含数字 `T`,表示测试用例组数,不超过1000组。\n\n对于每个测试样例,第一行包含两个数字 `n` 和 `m`,表示平面上初始的点数量和操作的数量。其中 1 ≤ n, m ≤ 10\u003csup\u003e5\u003c/sup\u003e。\n\n接下来的 `n` 行,每行包含三个整数 `x, y, w` 表示开始时有一个权值为 `w` 的点在 `(x,y)`,并且满足 1 ≤ x, y, w ≤ 6000。\n\n接下来 `m` 行包含的操作可以为查询或者修改,以上面提到的形式给出。为了让所有 `x` 和 `y` 动态,我们引入变量 `lastans` 来表示上一次查询的结果,其初始值为 0。对于每一个操作中的 `x` 和 `y`,它们的真实值分别为 `(x+lastans)%6000+1` 和 `(y+lastans)%6000+1`。操作中所有的数字满足 0 ≤ k ≤ 10\u003csup\u003e7\u003c/sup\u003e, 1 ≤ x, y, w ≤ 6000。\n\n我们保证所有测试样例 `n` 的和与 `m` 的和都不超过 10\u003csup\u003e6\u003c/sup\u003e。"}},{"title":"输出","value":{"format":"MD","content":"对于每一个样例,先输出一行 `Case #x:`,其中 `x` 是以1开始的测试数据编号。\n\n对于每一个查询,输出一行,包含表示答案的数字。"}},{"title":"样例输入","value":{"format":"MD","content":"```\n1\n3 6\n2999 3000 1\n3001 3000 1\n3000 2999 1\n1 2999 3000 1\n4 2999 2999 1\n2 2995 2996\n3 2995 2995 1 1\n4 2995 2995 1\n4 3000 3000 1\n```"}},{"title":"样例输出","value":{"format":"MD","content":"```\nCase #1:\n4\n6\n0\n```"}},{"title":"提示","value":{"format":"MD","content":"在样例中,如果我们忽略操作中 `x` 和 `y` 的动态修改,那么样例中的实际操作离线版本是:\n\n- 1 3000 3001 1\n- 4 3000 3000 1\n- 2 3000 3001\n- 3 3000 3000 1 1\n- 4 3000 3000 1\n- 4 3007 3007 1"}}]}