Tập số
Nộp bài giải
Điểm:
3,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Javascript, Kotlin, Pascal, Python, Scratch
Trên tập số , Alice tiến hành xóa đi () số để nhận được tập . Một cách chọn các số trên tập được gọi là cách chọn tối ưu bậc nếu:
- Hiệu hai số bất kì được chọn có giá trị tuyệt đối lớn hơn ;
- Số lượng số được chọn là lớn nhất.
Ví dụ, trên tập số , xóa đi ba số được tập , ba tập , và đều là cách chọn tối ưu bậc .
Cho và dãy , hãy giúp Alice tính số lượng số chọn được trong cách chọn tối ưu bậc và số cách chọn tối ưu. Chú ý, hai cách chọn được gọi là khác nhau nếu tồn tại một số của thuộc trong cách chọn này nhưng không thuộc trong cách chọn kia.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên dương (; ; );
- Dòng thứ hai chứa số nguyên dương phân biệt (, );
Dữ liệu ra
Hai dòng, dòng thứ nhất là số lượng số chọn được trong cách chọn tối ưu, dòng thứ hai là số cách chọn tối ưu chia dư cho ().
Ràng buộc
- Subtask 1 (20 điểm):
- Subtask 2 (25 điểm):
- Subtask 3 (25 điểm):
- Subtask 4 (30 điểm): Không có ràng buộc gì thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 8 3 1 2 3 8 |
3 3 |
. Chọn tối đa số có hiệu đôi một . Có cách: , , . |
Bình luận