Cbo một dãy số nguyên A_1, A_2,..., A_N. Bạn có thể thực hiện phép biến đổi sau với số lần tùy ý (có thể không thực hiện lần nào): Chọn một vị trí i từ 1 đến N, và đảo dấu A_i (tức là thay thể A_i bởi −A_i)
Hãy cho biết số phép biến đổi ít nhất cần thực hiện, để dãy thu được thỏa mãn tính chất sau: Tích của hai phần tử bất kì trong dãy đều là số nguyên dương (nói cách khác, với mỗi cặp (i, j) thỏa 1 \leq i < j \leq N, ta có A_i \times A_j > 0).
In ra một số nguyên duy nhất là số phép biến đổi ít nhất cần thực hiện. Trong trường hợp không có cách biến đổi, hãy in ra -1
.
Dữ liệu vào Sao chép |
5 10 -20 -30 40 50 |
Dữ liệu ra Sao chép |
2 |
Dữ liệu vào Sao chép |
4 9 7 2 3 |
Dữ liệu ra Sao chép |
0 |
Dữ liệu vào Sao chép |
3 0 0 0 |
Dữ liệu ra Sao chép |
-1 |
Trong ví dụ thứ nhất, ta sẽ lần lượt thực hiện phép biến đổi với vị trí 2 và 3. Khi đó, dãy A trở thành [10, 20, 30, 40, 50].