CF1866J.Jackets and Packets

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Pak Chanek has NN jackets that are stored in a wardrobe. Pak Chanek's wardrobe has enough room for two stacks of jackets, namely the left stack and the right stack. Initially, all NN jackets are in the left stack, while the right stack is empty. Initially, the ii -th jacket from the top of the left stack has colour CiC_i .

Pak Chanek wants to pack all of those jackets into some packets, such that the jackets in the same packet has the same colour. However, it is possible for two jackets with the same colour to be in different packets.

Pak Chanek can do two kinds of operations:

  • Pak Chanek can pick any number of jackets from the top from one stack as long as the colour is the same, then take those jackets out of the stack and pack them into a packet. This packing operation takes XX minutes, no matter how many jackets are packed.
  • Pak Chanek can move one topmost jacket from one stack to the top of the other stack (possibly right to left or left to right). This moving operation takes YY minutes.

Determine the minimum time to pack all jackets!

输入格式

The first line contains three integers NN , XX , and YY ( 1N4001 \leq N \leq 400 ; 1X,Y1091\leq X,Y\leq10^9 ) — the number of jackets, the time to do a packing operation, and the time to do a movement operation.

The second line contains NN integers C1,C2,C3,,CNC_1, C_2, C_3, \ldots, C_N ( 1CiN1 \leq C_i \leq N ) — the colour of each jacket.

输出格式

An integer representing the minimum time to pack all jackets.

输入输出样例

  • 输入#1

    8 7 2
    4 4 2 4 1 2 2 1

    输出#1

    38

说明/提示

Let's denote the contents of the two stacks using arrays that represent the colours of the jackets in the stack from top to bottom. Initially, the two stacks form [4,4,2,4,1,2,2,1][4, 4, 2, 4, 1, 2, 2, 1] and [][] .

Pak Chanek can do the following sequence of operations:

  1. Movement from left to right. The two stacks become [4,2,4,1,2,2,1][4, 2, 4, 1, 2, 2, 1] and [4][4] .
  2. Movement from left to right. The two stacks become [2,4,1,2,2,1][2, 4, 1, 2, 2, 1] and [4,4][4, 4] .
  3. Packing for 11 jacket from the top of the left stack. The two stacks become [4,1,2,2,1][4, 1, 2, 2, 1] and [4,4][4, 4] .
  4. Movement from left to right. The two stacks become [1,2,2,1][1, 2, 2, 1] and [4,4,4][4, 4, 4] .
  5. Movement from left to right. The two stacks become [2,2,1][2, 2, 1] and [1,4,4,4][1, 4, 4, 4] .
  6. Packing for 22 jackets from the top of the left stack. The two stacks become [1][1] and [1,4,4,4][1, 4, 4, 4] .
  7. Movement from right to left. The two stacks become [1,1][1, 1] and [4,4,4][4, 4, 4] .
  8. Packing for 33 jackets from the top of the right stack. The two stacks become [1,1][1, 1] and [][] .
  9. Packing for 22 jackets from the top of the left stack. The two stacks become [][] and [][] .

In total, it requires a time of 2+2+7+2+2+7+2+7+7=382+2+7+2+2+7+2+7+7=38 minutes to pack all jackets. It can be proven that there are no other ways that are faster.

首页