{"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\u003e初始时有一个包含 $$$n$$$ 个整数的数组 $$$a$$$。数组中的位置从 $$$1$$$ 编号到 $$$n$$$。\u003c/p\u003e\u003cp\u003e对数组执行了 $$$q$$$ 次查询。在第 $$$i$$$ 次查询中选择了某个区间 $$$(l_i, r_i)$$$ $$$(1 \\le l_i \\le r_i \\le n)$$$,并将位置从 $$$l_i$$$ 到 $$$r_i$$$ 的元素值更改为 $$$i$$$。查询的顺序不能改变,所有 $$$q$$$ 次查询都要被应用。还知道从 $$$1$$$ 到 $$$n$$$ 的每个位置至少被一个区间覆盖。\u003c/p\u003e\u003cp\u003e我们本可以给你一个问题,检查某个给定数组(由 $$$n$$$ 个整数组成,值从 $$$1$$$ 到 $$$q$$$)是否可以通过上述查询得到。然而,我们觉得这对你来说太容易了。\u003c/p\u003e\u003cp\u003e所以我们对它进行了改进。在这个数组中选择一些位置的集合(可能为空),并将这些位置的元素值设为 $$$0$$$。\u003c/p\u003e\u003cp\u003e你的任务是检查这个数组是否可以通过上述查询得到。如果可以得到,则恢复这个数组。\u003c/p\u003e\u003cp\u003e如果存在多个可能的数组,则打印其中任意一个。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e第一行包含两个整数 $$$n$$$ 和 $$$q$$$($$$1 \\le n, q \\le 2 \\cdot 10^5$$$)— 数组元素的数量和对其执行的查询次数。\u003c/p\u003e\u003cp\u003e第二行包含 $$$n$$$ 个整数 $$$a_1, a_2, \\dots, a_n$$$($$$0 \\le a_i \\le q$$$)— 结果数组。如果某个位置 $$$j$$$ 的元素等于 $$$0$$$,则该位置的元素值可以是从 $$$1$$$ 到 $$$q$$$ 之间的任意整数。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e如果数组 $$$a$$$ 可以通过执行 $$$q$$$ 次查询得到,则打印 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eYES\u003c/span\u003e\"。每次查询都会单独选择区间 $$$(l_i, r_i)$$$ $$$(1 \\le l_i \\le r_i \\le n)$$$。从 $$$1$$$ 到 $$$n$$$ 的每个位置都应该至少被一个区间覆盖。\u003c/p\u003e\u003cp\u003e否则打印 \"\u003cspan class\u003d\"tex-font-style-tt\"\u003eNO\u003c/span\u003e\"。\u003c/p\u003e\u003cp\u003e如果某个数组可以被得到,则打印第二行的 $$$n$$$ 个整数 — 第 $$$i$$$ 个数字应该等于结果数组的第 $$$i$$$ 个元素,并且值应该在 $$$1$$$ 到 $$$q$$$ 之间。这个数组应该可以通过执行恰好 $$$q$$$ 次查询得到。\u003c/p\u003e\u003cp\u003e如果存在多个可能的数组,则打印其中任意一个。\u003c/p\u003e"}},{"title":"示例","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\u003e4 3\n1 0 2 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYES\n1 2 2 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","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 10\n10 10 10\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYES\n10 10 10 \n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","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\u003e5 6\n6 5 6 2 2\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eNO\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","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 5\n0 0 0\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYES\n5 4 2\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"注意","value":{"format":"HTML","content":"\u003cp\u003e在第一个示例中,你也可以用 $$$0$$$ 替换 $$$1$$$,但不能用 $$$3$$$。\u003c/p\u003e\u003cp\u003e在第二个示例中,直到第 $$$10$$$ 次查询选择的区间是 $$$(1, 3)$$$,选择哪些区间并不重要。\u003c/p\u003e\u003cp\u003e第三个示例展示了查询的顺序不能改变,你不能先将 $$$(1, 3)$$$ 设置为 $$$6$$$,然后将 $$$(2, 2)$$$ 改为 $$$5$$$。区间 $$$5$$$ 应该在区间 $$$6$$$ 之前应用。\u003c/p\u003e\u003cp\u003e对于第四个示例,有很多正确的结果数组。\u003c/p\u003e"}}]}