Canadian Computing Competition: 2020 Stage 1, Senior #4
There are A
, B
, or C
. A group is happy if all of its members are sitting contiguously in a block of consecutive seats. You would like to make all groups happy by some sequence of swap operations. In each swap operation, two people exchange seats with each other. What is the minimum number of swaps required to make all groups happy?
Input Specification
The input consists of a single line containing A
, B
, or C
. The
For
For an additional
For an additional
Output Specification
Output a single integer, the minimum possible number of swaps.
Sample Input
BABCBCACCA
Output for Sample Input
2
Explanation of Output for Sample Input
In one possible sequence, the first swap results in the seating layout AABCBCBCCA
. After the second swap, the layout is AABBBCCCCA
.
Comments
For the sample input, why is
AABBBCCCCA
the correct final sort? Why doesn't it need to beAAABBBCCCC
for the A group to be happy?They are arranged in a ring, not in a row.
The table is circular.
I don't understand how "AABCBCBCCA" can become "AABBBCCCCA" in just one swap. Can someone explain?
Swap these 2 characters.
Oh I see, thank you.
Can we assume there will always be >2 of each type? (in the case that one exists)
It's not in the statement, so probably not. I don't know why they would exclude cases like
.