{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"博士章鱼绑架了蜘蛛侠的女朋友M.J.并将她关在西塔中。现在英雄蜘蛛侠必须尽快到达塔楼,使用他自己的武器——蜘蛛丝——来解救她。\r\u003cbr\u003e\r\u003cbr\u003e从蜘蛛侠的公寓出发到塔楼有一条笔直的道路。沿着道路旁边矗立着许多高楼,这些楼肯定比他的公寓更高或者等高。蜘蛛侠可以将他的蜘蛛丝射到塔楼和他之间的任何一栋建筑物的顶部(包括塔楼),然后荡到建筑物的另一侧。当他完成荡秋时,他可以将蜘蛛丝射向另一栋建筑物,再次荡秋,直到到达西塔。图1显示了蜘蛛侠如何从公寓的顶部到达塔楼——他从A荡到B,从B荡到C,然后从C到塔楼。所有的建筑物(包括塔楼)都被视为直线,在荡秋过程中他不能触地,这意味着蜘蛛丝的长度要短于或等于建筑物的高度。请注意,在蜘蛛侠的荡秋过程中,他永远不能后退。\r\u003cbr\u003e\u003ccenter\u003e\u003cimg src\u003d\"CDN_BASE_URL/f7201b241da5cc7b2ccc00ecc0623582?v\u003d1702996785\"\u003e\u003c/center\u003e\r\u003cbr\u003e你可以假设每次荡秋都需要花费一单位的时间。如图1所示,蜘蛛侠用了3次荡秋到达了塔楼,你可以很容易地发现没有更好的方法。"}},{"title":"输入","value":{"format":"HTML","content":"输入的第一行包含测试用例的数量K(1 \u003c\u003d K \u003c\u003d 20)。每个测试用例以包含一个整数N(2 \u003c\u003d N \u003c\u003d 5000)的行开始,表示建筑物的数量(包括公寓和塔楼)。接下来的N行,每行包含两个整数Xi, Yi(0 \u003c\u003d Xi, Yi \u003c\u003d 1000000),表示建筑物的位置和高度。第一栋建筑物始终是公寓,最后一栋建筑物始终是塔楼。输入按照Xi值按升序排序,且没有两栋建筑物具有相同的X值。"}},{"title":"输出","value":{"format":"HTML","content":"对于每个测试用例,输出一行,包含最小荡秋次数(如果可以到达塔楼),或者如果蜘蛛侠无法到达塔楼则输出-1。"}},{"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\u003e2\r\n6\r\n0 3\r\n3 5\r\n4 3\r\n5 5\r\n7 4\r\n10 4\r\n3\r\n0 3\r\n3 4\r\n10 4\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\r\n-1\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}