Điểm:
100
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
posiprod.inp
Output:
posiprod.out
Cho 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\) bất kỳ \((1 \le i \le n)\), và đảo dấu \(a_i\) (tức là \(a_i = -a_i\))
Hãy tính số phép biến đổi ít nhất để thỏa mãn: tích hai phần tử bất kỳ của dãy luôn lớn hơn 0.
Input
-
(Đọc từ file văn bản
posiprod.inp
) -
Dòng đầu: \(n\) \((n \le 100)\)
- Dòng sau: \(a_1,a_2,...,a_n\) \((|a_i| \le 1000)\)
Output
-
(Ghi ra file văn bản
posiprod.out
) -
Đáp án thỏa mãn yêu cầu đề bài. Nếu không có cách biến đổi nào, in ra
-1
.
Example
Test 1
Input
3
1 2 3
Output
0
Test 2
Input
3
0 1 2
Output
-1
Bình luận
sao luc thi in ra 0 luc thi in ra -1 the admin oi minh chua hieu lam
0
khikhông cần bất cứ phép biến đổi nào cả
;-1
khidù cần bất cứ bao nhiêu phép toán (có thể là 0) đi chăng nữa thì vẫn không thể thỏa mãn yêu cầu đề bài
.Vậy ta có thể suy ra
0
khi tích của dãy số luôn lớn hơn0
;-1
khi tích của dãy số luôn bằng0
.