Codeforces Round 612 (Div. 1)
F
Harry The Potter
Codeforces
3100
原题
← E→
翻译中…

To defeat Lord Voldemort, Harry needs to destroy all horcruxes first. The last horcrux is an array $a$ of $n$ integers, which also needs to be destroyed. The array is considered destroyed if all its elements are zeroes. To destroy the array, Harry can perform two types of operations:

翻译中…
  1. choose an index $i$ ($1 \le i \le n$), an integer $x$, and subtract $x$ from $a_i$.
  2. choose two indices $i$ and $j$ ($1 \le i, j \le n; i \ne j$), an integer $x$, and subtract $x$ from $a_i$ and $x + 1$ from $a_j$.
翻译中…

Note that $x$ does not have to be positive.

翻译中…

image

翻译中…

Harry is in a hurry, please help him to find the minimum number of operations required to destroy the array and exterminate Lord Voldemort.

翻译中…

Input

翻译中…

The first line contains a single integer $n$ — the size of the array $a$ ($1 \le n \le 20$).

翻译中…

The following line contains $n$ integers $a_1, a_2, \ldots, a_n$ — array elements ($-10^{15} \le a_i \le 10^{15}$).

翻译中…

Output

翻译中…

Output a single integer — the minimum number of operations required to destroy the array $a$.

翻译中…

Note

翻译中…

In the first example one can just apply the operation of the first kind three times.

翻译中…

In the second example, one can apply the operation of the second kind two times: first, choose $i = 2, j = 1, x = 4$, it transforms the array into $(0, -1, -2)$, and then choose $i = 3, j = 2, x = -2$ to destroy the array.

翻译中…

In the third example, there is nothing to be done, since the array is already destroyed.

翻译中…

样例

Input #1
3
1 10 100
Output #1
3
InputCopy OutputCopy
Input #2
3
5 3 -2
Output #2
2
InputCopy OutputCopy
Input #3
1
0
Output #3
0
InputCopy OutputCopy
题目信息
题号
1286F
时间限制
9 s
内存限制
1024 MB
标签
暴力
构造
动态规划
FFT
模拟
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。