#HK5443. 「ROI 2013 Day 2」星际之旅
「ROI 2013 Day 2」星际之旅
题目描述
译自 ROI 2013 Day2 T1. Звёздный путь
一支探险队正准备乘坐新一代宇宙飞船启程,计划依次访问星系中的 颗行星,从地球到胜利星。行星按访问顺序编号为 到 ,其中地球编号为 ,胜利星编号为 。
飞船在行星之间飞行时可以使用星系中存在的任何类型燃料。探险开始前,飞船位于地球,燃料箱为空。燃料类型以整数编号,在编号为 的行星上只能加注类型为 的燃料。到达第 颗行星时,可以选择加注燃料,此时会清空燃料箱中现有的燃料,并加满类型为 的燃料。
每颗行星的加油站设置了特定规则,每次加注的燃料量恰好足够飞到下一颗提供相同类型燃料的行星。如果在后续行星中不再有提供该类型燃料的行星,则无法在当前行星加注燃料。也就是说,在第 颗行星加注后,燃料足够访问从第 颗到第 颗行星(包括第 颗),其中 是大于 的最小行星编号,且满足 。若要继续探险至第 颗行星之后,则需在这些行星中的某颗上再次加注燃料。
你需要编写一个程序,根据各行星提供的燃料类型,计算完成探险所需的最小加注次数。
输入格式
输入文件的第一行包含一个整数 ,表示行星的数量。
第二行包含 个整数 ,表示各行星上提供的燃料类型。
输出格式
输出文件的第一行应包含一个整数 ,表示完成探险所需的最小加注次数。
第二行应包含 个以空格分隔的整数,表示需要加注燃料的行星编号。行星编号需按加注时间顺序输出。
如果存在多种具有最小加注次数的方案,可以输出任意一种。如果不存在解决方案,则输出唯一的数字 。
7
1 3 2 1 3 2 3
3
1 3 5
7
4 3 2 4 3 2 1
0
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|