{"trustable":true,"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":"HTML","content":"\u003cp\u003eDreamGrid has an interesting permutation of $$$1, 2, \\dots, n$$$ denoted by $$$a_1, a_2, \\dots, a_n$$$. He generates three sequences $$$f$$$, $$$g$$$ and $$$h$$$, all of length $$$n$$$, according to the permutation $$$a$$$ in the way described below:\u003c/p\u003e\u003cul\u003e \u003cli\u003e For each $$$1 \\le i \\le n$$$, $$$f_i \u003d \\max\\{a_1, a_2, \\dots, a_i \\}$$$; \u003c/li\u003e\u003cli\u003e For each $$$1 \\le i \\le n$$$, $$$g_i \u003d \\min\\{a_1, a_2, \\dots, a_i \\}$$$; \u003c/li\u003e\u003cli\u003e For each $$$1 \\le i \\le n$$$, $$$h_i \u003d f_i - g_i$$$. \u003c/li\u003e\u003c/ul\u003e\u003cp\u003eBaoBao has just found the sequence $$$h$$$ DreamGrid generates and decides to restore the original permutation. Given the sequence $$$h$$$, please help BaoBao calculate the number of different permutations that can generate the sequence $$$h$$$. As the answer may be quite large, print the answer modulo $$$10^9+7$$$.\u003c/p\u003e"}},{"title":"Input","value":{"format":"HTML","content":"\u003cp\u003eThe input contains multiple cases. The first line of the input contains a single integer $$$T$$$ ($$$1\\leq T\\leq 20\\,000$$$), the number of cases.\u003c/p\u003e\u003cp\u003eFor each case, the first line of the input contains a single integer $$$n$$$ ($$$1 \\le n \\le 10^5$$$), the length of the permutation as well as the sequences. The second line contains $$$n$$$ integers $$$h_1, h_2, \\dots, h_n$$$ ($$$1 \\le i \\le n, 0 \\le h_i \\le 10^9$$$).\u003c/p\u003e\u003cp\u003eIt\u0027s guaranteed that the sum of $$$n$$$ over all cases does not exceed $$$2\\cdot 10^6$$$.\u003c/p\u003e"}},{"title":"Output","value":{"format":"HTML","content":"\u003cp\u003eFor each case, print a single line containing a single integer, the number of different permutations that can generate the given sequence $$$h$$$. Don\u0027t forget to print the answer modulo $$$10^9+7$$$.\u003c/p\u003e"}},{"title":"Examples","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3\n3\n0 2 2\n3\n0 1 2\n3\n0 2 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\n4\n0\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}},{"title":"Note","value":{"format":"HTML","content":"\u003cp\u003eFor the first sample case, permutations $$$\\{1, 3, 2\\}$$$ and $$$\\{3, 1, 2\\}$$$ can both generate the given sequence.\u003c/p\u003e\u003cp\u003eFor the second sample case, permutations $$$\\{1, 2, 3\\}$$$, $$$\\{2, 1, 3\\}$$$, $$$\\{2, 3, 1\\}$$$ and $$$\\{3, 2, 1\\}$$$ can generate the given sequence.\u003c/p\u003e"}}]}