Đ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
điều khó nhất ở đây không phải là viết code, mà là nhập xuất file trong C:)
1 bình luận nữa