K 理事长喜欢占卜,总是进行各种各样的占卜。今天,他使用了正面写有 ‘I’、背面写有 ‘O’ 的卡片,来占卜今年 IOI 日本代表队的表现。
占卜的方法如下:
- 首先,确定正整数 。
- 将 张卡片横向排列成一行。排列方式为:从左开始,前 张为正面,接着 张为背面,接着 张为正面,接着 张为背面,最后 张为正面。这样排列后,从左到右依次会出现 个 ‘I’、 个 ‘O’、 个 ‘I’、 个 ‘O’、 个 ‘I’。
- 从预先确定的 种操作中选择一种或多种,按任意顺序执行。允许对同一种操作执行多次。第 种()操作定义为:“将从左数第 张到第 张卡片的所有正反面翻转”。翻转一张卡片需要 1 秒钟,因此执行第 种操作需要 秒。
- 操作结束后,若所有卡片都为正面,则占卜成功。
为了尽可能减少实际翻转卡片的次数,K 理事长在实际占卜前,希望先判断是否有可能使占卜成功。如果可以成功,他还希望求出使占卜成功所需的最少时间。
题目
给定卡片的初始排列信息和预先确定的操作信息,编写程序判断是否可以使占卜成功;如果可以,求出使占卜成功所需的最少时间。