Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P186PROG - ROUND 6G - Chia dãy số |
Cho dãy số A gồm n phần tử A1, A2, A3, …, An. Bạn phải tìm cách chia dãy số ra làm 2 nửa, mỗi nửa có ít nhất một phần tử, sao cho tổng các phần tử của mỗi nửa bằng nhau.
Có thể bạn sẽ không tìm ra cách nào, vì vậy đề bài sẽ cho bạn thêm một thao tác, đó là chọn ra một phần tử trong dãy, nhấc nó ra khỏi vị trí hiện tại và chèn vào một vị trí khác.
Sau khi thực hiện xong thao tác trên mà bạn vẫn không tìm được cách chia nào thì rất tiếc, vì đề sẽ không cho bạn thêm thao tác nào nữa. Lúc này bạn chỉ còn cách in ra “NO” để thông báo cho máy chấm.
Ngược lại, nếu bạn tìm thấy một cách chia, kể cả khi phải sử dụng thao tác trên, hãy cho máy chấm biết bằng cách in ra “YES”.
Input
Dòng đầu tiên gồm một số nguyên dương T (T ≤ 10) là số lượng bộ test.
Mỗi bộ test gồm 2 dòng
- Dòng đầu tiên gồm một số nguyên dương n (n ≤ 105) – số lượng phần tử của dãy A.
- Dòng tiếp theo gồm n số nguyên dương A1, A2, A3, …, An (Ai ≤ 109).
Output
“YES” hoặc “NO”.
Example
Input: 3
2
8 8
2
7 8
3
2 8 6 Output: YES
NO
YES
Giải thích:
Với bộ test thứ 3, bạn có thể nhấc phần tử 8 và chèn nó vào đầu, khi đó bạn có dãy số mới là 8 2 6, và bạn có thể chia nó ra làm hai nửa có tổng là 8.
Được gửi lên bởi: | adm |
Ngày: | 2018-04-06 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 ASM64 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |