Tích bằng 1

Xem PDF

Điểm: 888 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho trước mảng \(a\) gồm \(n\) số nguyên \(a_1,a_2,...,a_n\) và một thao tác Q được định nghĩa như sau:

  • Chọn một phần tử bất kỳ từ mảng \(a\) và có thể thay đổi phần tử này bằng cách tăng lên \(1\) đơn vị hoặc giảm đi \(1\) đơn vị

Yêu cầu bài toán: Hỏi ta có thể thực hiện ít nhất bao nhiêu thao tác \(Q\) để thu được: \(a_1.a_2...a_n = 1\) (tức là tích tất cả các phần tử trong mảng \(a\) bằng 1)

Ví dụ 1: Giả sử ta có mảng \(a\) gồm các phần tử: \(1,-3,0\). Thì đáp án là ta cần thực hiện \(3\) lần thao tác \(Q\) lên mảng \(a\) để thu được kết quả: \(a_1.a_2.a_3=1\), cụ thể như sau:

  • Lần 1: Ta cộng phần tử thứ \(2\) lên \(1\) đơn vị, khi đó mảng \(a\) trở thành: \(1,-2,0\)
  • Lần 2: Ta cộng phần tử thứ \(2\) lên \(1\) đơn vị, khi đó mảng \(a\) trở thành: \(1,-1,0\)
  • Lần 3: Ta giảm phần tử thứ \(3\) xuống \(1\) đơn vị, khi đó mảng \(a\) trở thành: \(1,-1,-1\). Và khi đó ta thu được tích: \(1.(-1).(-1)=1\)

Input

  • Dòng đầu tiên chứa số nguyên dương \(t(1\le t\le 100)\) - Thể hiện số testcase
  • \(t\) block tiếp theo, mỗi block có dạng như sau:
  • ++ Dòng đầu tiên chứa số nguyên dương \(n(1\le n\le 10^4)\)
  • ++ Dòng thứ hai chứa \(n\) số nguyên: \(a_1,a_2,...,a_n (-10^9\le a_i\le 10^9)\)

Output

  • Ứng với mỗi testcase, hãy in kết quả ra màn hình.

Example

Test 1

Input
2
2
1 -3 0
2
-1 1
Output
3
2

Bình luận


  • 0
    trananhminh_lvt_k39    9:29 p.m. 11 Tháng 11, 2024

    Cho em hỏi ví dụ sai không ạ, em thấy dãy thứ nhất có 3 phần tử ai mà sao n=2?


    • 0
      phonghoang278314    12:22 a.m. 15 Tháng 8, 2024 đã chỉnh sửa

      :v đầu vào của bài có thêm dấu cách ở cuối thì phải, mình chạy thử thấy không vấn đề gì xong gõ lẹm thì ms ra cái lỗi khi nộp

      1 phản hồi