European Girls' Olympiad in Informatics: 2021 Day 1 Problem 2
Luna came up with a wild idea. She lined up her friends into a long line and gave
each of them an integer number between
and
, inclusive. Each number is used
exactly twice. Each pair of friends who share the same number forms a couple.
Luna wants to send each of the couples on a date. However, it is not that
straightforward. In order to send a couple on a date, the two friends forming the
couple must stand next to each other in the line, i.e., there cannot be anybody else
standing between them.
There are two possible actions that Luna can take:
- She can swap any two friends who stand next to each other in the line.
- If a couple is standing next to each other in the line, Luna can send them on a date. This removes the couple from the line. The remaining friends then shift to fill in the gap in the line.
The actions can be performed in any order. E.g., she can make some swaps, then send some pairs of friends on a date, and then go back to making swaps.
Find and report the minimum number of actions needed to send everybody on a date.
Input Specification
The first line of the input contains a single integer .
The second line of the input contains single-space separated integers
— the sequence of numbers received by the friends in the long line, in order.
Output Specification
The first and only line of the output contains the minimum number of actions Luna must make in order to send every couple on a date.
Constraints
Subtask | Points | Constraints |
---|---|---|
For each couple there is no person between the two friends forming a couple, and |
||
For each couple there is at most one person between the two friends forming a couple, and |
||
The first |
||
The first |
||
Sample Input 1
3
3 1 2 1 2 3
Sample Output 1
4
Explanation for Sample Output 1
Luna could start by swapping the third and the fourth friend. After
this swap the line looks as follows: .
Then, she can send the couple with number and the couple with number
on a date
(in any order). Once she does so, the two friends with number
are now adjacent in
line and Luna can send them on a date, too.
Overall this solution takes actions: one swap and three dates.
Sample Input 2
5
5 1 2 3 2 3 1 4 5 4
Sample Output 2
7
Comments