POSIPROD

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Clang, Clang++, Cobol, D, Groovy, Haskell, Java, JS, Kotlin, Lua, Node JS, ObjectiveC, OCaml, Output, Pascal, PHP, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Swift
Đ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


  • 0
    tk22dangminhduc    11:57 a.m. 25 Tháng 6, 2023

    điều khó nhất ở đây không phải là viết code, mà là nhập xuất file trong C:)


    • 0
      tienthanh2007    9:45 p.m. 16 Tháng 10, 2022

      sao luc thi in ra 0 luc thi in ra -1 the admin oi minh chua hieu lam

      1 phản hồi