1137 - Biến đổi dãy số (2)

Tạo bởi: CLB Olympic Tin học HUTECH

Mô tả yêu cầu

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).

Dữ liệu vào

  • Dòng đầu tiên gồm số nguyên N (2 \leq N \leq 100) - số phần tử của dãy A.
  • Dòng thứ hai gồm N số nguyên A_1, A_2,..., A_N (−1000 \leq Ai \leq 1000) - mô tả dãy A.

Dữ liệu ra

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.

Ví dụ

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

Gợi ý/Hướng dẫn

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í 23. Khi đó, dãy A trở thành [10, 20, 30, 40, 50].

Đăng nhập để làm bài
Thông tin
Giới hạn thời gian 1 giây
Giới hạn bộ nhớ 128 MB