#P14556. [ROI 2013 Day2] 星际航程
[ROI 2013 Day2] 星际航程
题目描述
一支远征队准备乘坐新一代宇宙飞船启程。计划依次访问恒星系中的 颗行星——从地球到胜利星。行星按访问顺序编号为 到 ,地球编号为 ,胜利星编号为 。
对于行星间的飞行,飞船可以使用恒星系中存在的任何燃料类型。在远征开始前,飞船位于地球,并且飞船的燃料箱是空的。现有燃料类型用整数编号,在编号为 的行星上只能加注类型为 的燃料。访问第 颗行星时,可以清空燃料箱中已有的燃料,然后加满类型为 的燃料。
每颗行星上的加油站设置使得,加注的燃料量恰好足够飞行到下一颗具有相同燃料类型的行星。如果后续没有该类型的燃料,则无法在该行星上加注。换句话说,在第 颗行星加注后,燃料足够访问从第 颗到第 颗行星(包含),其中 是满足 且 的最小编号行星。为了继续远征至第 颗行星之后,飞船需要在这些行星中的某一颗再次加注。
需要编写一个程序,根据给定的行星燃料类型,确定远征所需的最小加注次数。
输入格式
输入文件的第一行写有数字 ()——行星的数量。
输入文件的第二行写有 个整数 ()——行星上的燃料类型。
输出格式
输出文件的第一行输出唯一数字 ——需要执行的最小加注次数。
第二行输出 个数字,以空格分隔——需要加注的行星编号。行星编号按加注时间顺序输出。
如果存在多个具有最小加注次数的解决方案,输出其中任意一个。如果无解,输出数字 。
7
1 3 2 1 3 2 3
3
1 3 5
7
4 3 2 4 3 2 1
0
提示
评分
本题包含两个子任务。每个子任务的评分使用独立的测试组。仅当通过该组所有测试时,子任务的得分才会被计入。
子任务 1
。该子任务分值为 分。
子任务 2
。该子任务分值为 分。
京公网安备 11011102002149号