现有n瓶水,其中有且仅有一瓶有毒。用小白鼠去试毒。小白鼠在喝到有毒的水后,会在1天内死亡。现在你只有一天的时间,需要通过死亡情况来判断有毒的水的编号。
可以认为每瓶水都是无限的,每一只小白鼠都可以喝任意多瓶水且不消耗时间。
你需要输出最少需要用多少只小白鼠才能完成这件事情。并且输出一个可以判断的试毒方案。注意,水的编号是从
包括一行,一个整数n,表示一共有n瓶水。
输出k+1行,第一行一个数k,表示你需要k只小白鼠。 以下第i+1行,代表第i只小白鼠要喝的水。开头一个数字m,表示第i只小白鼠要喝m瓶水,后面m个数字,说明这m瓶水的编号。
3
2
1 1
1 2
对于样例,一共有三瓶水,需要两只小白鼠。令1号小白鼠喝1,2号小白鼠喝2,如果都没有死亡说明3号水有毒。 当然,如果你选择1号小白鼠喝1和2,2号小白鼠喝1,也是可以的。也就是输出
2
2 1 2
1 1
这样的合理策略有很多。你只需要输出其中的一种。
保证1≤n≤10000。