NONZERO

Cho một mảng ~ a ~ gồm ~ n ~ số nguyên ~ a_1, a_2, …, a_n ~. Mỗi bước bạn có thể tăng một phần tử bất kì lên 1 đơn vị. Cụ thể, mỗi bước bạn có thể chọn chỉ số ~ i (1 ≤ i ≤ n) ~ và thực hiện gán ~ a_i=a_i+1 ~.

Yêu cầu: Tìm số bước tối thiểu cần thực hiện để làm cho cả tổng và tích các phần tử trong mảng ~ a ~ là khác 0. Cụ thể, tìm số bước tối thiểu để ~ a_1+a_2+…+a_n≠0 ~ và ~ a_1×a_2×…×a_n ≠ 0 ~.

Dữ liệu vào:

  • Dòng đầu tiên chứa một số nguyên ~ t (1≤t≤10^3) ~ là số lượng test. Mỗi test được mô tả như sau:
    • Dòng 1: Chứa một số nguyên ~ n (1 ≤ n ≤ 100) ~ là kích thước phần tử trong mảng.
    • Dòng 2: Chứa ~ n ~ số nguyên ~ a_1, a_2, …, a_n ~ ~ (-100 ≤ a_i≤ 100) ~là các phần tử trong mảng.

Kết quả:

  • ~ t ~ dòng, dòng thứ ~ i ~ tương ứng với test thứ ~ i ~ trong file input in ra một số nguyên duy nhất là số bước tối thiểu cần thực hiện để cả tổng và tích các phần tử trong mảng là khác 0.

Ví dụ:

Input

3
3
2 -1 -1
4
-1 0 0 1
2
-1 2 
Output
1
2
0 

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. nguyenvuquang (12/18)
  2. huy_notcoding (9/14)
  3. ilpnvm (9/18)
Trong 7 ngày
  1. ducchinh (169/223)
  2. hienpham (163/213)
  3. bichngoc (150/213)
Trong 30 ngày
  1. ducchinh (169/223)
  2. hienpham (163/213)
  3. tgtam2022 (150/369)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 37713

Lưu Hải Phong - 2020
[email protected]