{"trustable":true,"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":"\u003cdiv class\u003d\"panel_content\"\u003e作为一名ACMer,需要掌握许多领域的知识,因为比赛中的问题可能涉及物理、生物甚至音乐学作为背景。而在这个问题中,你将扮演一名城市建筑师!\u003cbr\u003e正在建设一个有N个城镇的城市(编号从1到N)。你作为建筑师,负责设计这些城镇如何通过单向道路相连。每条道路连接两个城镇,乘客可以单向通过。\u003cbr\u003e\u003cbr\u003e出于商业目的,城镇之间的连通性有一些要求。给定N个非负整数a1 .. aN。对于1 \u003c\u003d i \u003c\u003d N,从城镇i出发的乘客应该能够到达恰好ai个城镇(直接或间接到达,不包括i本身)。为了避免在旅途中产生混乱,每条道路应该是不同的,且不应存在循环(乘客可以通过多条道路到达起点并返回)。\u003cbr\u003e\u003cbr\u003e你的任务是构建这样一个城市。现在是你的表演时间!\u003cbr\u003e\u003c/div\u003e"}},{"title":"输入","value":{"format":"HTML","content":"第一行是一个整数T(T \u003c\u003d 10),表示测试用例的数量。每个测试用例以一个整数N(1 \u003c\u003d N \u003c\u003d 1000)开始,表示城镇的数量。然后是一行中的N个数字,第i个数字ai(0 \u003c\u003d ai \u003c N)已在上文中描述过。"}},{"title":"输出","value":{"format":"HTML","content":"对于每个测试用例,在一行中输出“Case #X: Y”,其中X是从1开始的案例编号,Y是“Yes”,如果你能成功构建,或者“No”,如果不可能满足要求。\u003cbr\u003e\u003cbr\u003e如果Y是“Yes”,则在一行中输出一个整数M,表示道路的数量。然后是M行,每行包含两个整数u和v(1 \u003c\u003d u, v \u003c\u003d N),用一个空格分隔,表示从城镇u到城镇v的直接道路。如果有多个可能的解决方案,则输出其中任意一个即可。\u003cbr\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\r\n3\r\n2 1 0\r\n2\r\n1 1\r\n4\r\n3 1 1 0\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eCase #1: Yes\r\n2\r\n1 2\r\n2 3\r\nCase #2: No\r\nCase #3: Yes\r\n4\r\n1 2\r\n1 3\r\n2 4\r\n3 4\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}