CF1849D Array Painting
Description
You are given an array of $ n $ integers, where each integer is either $ 0 $ , $ 1 $ , or $ 2 $ . Initially, each element of the array is blue.
Your goal is to paint each element of the array red. In order to do so, you can perform operations of two types:
- pay one coin to choose a blue element and paint it red;
- choose a red element which is not equal to $ 0 $ and a blue element adjacent to it, decrease the chosen red element by $ 1 $ , and paint the chosen blue element red.
What is the minimum number of coins you have to spend to achieve your goal?
Input Format
The first line contains one integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ).
The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 0 \le a_i \le 2 $ ).
Output Format
Print one integer — the minimum number of coins you have to spend in order to paint all elements red.
Explanation/Hint
In the first example, you can paint all elements red with having to spend only one coin as follows:
1. paint the $ 2 $ -nd element red by spending one coin;
2. decrease the $ 2 $ -nd element by $ 1 $ and paint the $ 1 $ -st element red;
3. decrease the $ 2 $ -nd element by $ 1 $ and paint the $ 3 $ -rd element red.
In the second example, you can paint all elements red spending only two coins as follows:
1. paint the $ 4 $ -th element red by spending one coin;
2. decrease the $ 4 $ -th element by $ 1 $ and paint the $ 3 $ -rd element red;
3. paint the $ 1 $ -st element red by spending one coin;
4. decrease the $ 3 $ -rd element by $ 1 $ and paint the $ 2 $ -nd element red.