logo AlgoBeat OnlineJudge
登录 注册

#214392. [ROI 2013 Day2] 星际航程

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

一支远征队准备乘坐新一代宇宙飞船启程。计划依次访问恒星系中的 颗行星——从地球到胜利星。行星按访问顺序编号为 ,地球编号为 ,胜利星编号为

对于行星间的飞行,飞船可以使用恒星系中存在的任何燃料类型。在远征开始前,飞船位于地球,并且飞船的燃料箱是空的。现有燃料类型用整数编号,在编号为 的行星上只能加注类型为 的燃料。访问第 颗行星时,可以清空燃料箱中已有的燃料,然后加满类型为 的燃料。

每颗行星上的加油站设置使得,加注的燃料量恰好足够飞行到下一颗具有相同燃料类型的行星。如果后续没有该类型的燃料,则无法在该行星上加注。换句话说,在第 颗行星加注后,燃料足够访问从第 颗到第 颗行星(包含),其中 是满足 的最小编号行星。为了继续远征至第 颗行星之后,飞船需要在这些行星中的某一颗再次加注。

需要编写一个程序,根据给定的行星燃料类型,确定远征所需的最小加注次数。

输入格式

输入文件的第一行写有数字 )——行星的数量。

输入文件的第二行写有 个整数 )——行星上的燃料类型。

输出格式

输出文件的第一行输出唯一数字 ——需要执行的最小加注次数。

第二行输出 个数字,以空格分隔——需要加注的行星编号。行星编号按加注时间顺序输出。

如果存在多个具有最小加注次数的解决方案,输出其中任意一个。如果无解,输出数字

样例

样例输入 1

7
1 3 2 1 3 2 3

样例输出 1

3
1 3 5

样例输入 2

7
4 3 2 4 3 2 1

样例输出 2

0

数据范围与提示

评分

本题包含两个子任务。每个子任务的评分使用独立的测试组。仅当通过该组所有测试时,子任务的得分才会被计入。

子任务 1

。该子任务分值为 分。

子任务 2

。该子任务分值为 分。