Phân nhóm

Xem dạng PDF

Gửi bài giải

Điểm: 5,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++

Phân tích nhóm (phân nhóm, chia nhóm) là công việc phân chia các phần tử trong một tập hợp thành một hoặc nhiều nhóm mà trong đó, các phần tử trong cùng một nhóm sẽ giống nhau hơn so với phần tử thuộc nhóm khác. Cho một tập số nguyên dương và một số nguyên dương  K, nhiệm vụ của bạn là đếm xem có bao nhiêu nhóm. Biết rằng 2 phần tử được xếp chung nhóm với nhau nếu như chênh lệch giữa chúng không vượt quá K.

Ví dụ: với tập N = 7 số nguyên dương: 2,6, 1, 7, 3, 4, 9 và K = 1 thì ta sẽ có các mối quan hệ sau:

 - 2 và 1 chung một nhóm (chênh lệch giữa chúng là 1, không vượt quá K)

 - 2 và 3 chung một nhóm

 - 6 và 7 chung một nhóm

 - 3 và 4 chung một nhóm

Vậy ta sẽ có 3 nhóm: {1, 2, 3, 4}, {6, 7} và {9}

Dữ liệu nhập: Dòng đầu tiên chứa số nguyên T - số bộ test cần kiểm tra (T ≤ 100), mỗi bộ test gồm 2 dòng:

 - Dòng đầu trong mỗi bộ test chứ 2 số nguyên dương N, K (1  N ≤ 100, 1 ≤ ≤ 106)

 - Dòng thứ hai trong mỗi bộ test chứ N số nguyên dương - các phần tử của tập hợp (giá trị không vượt quá 106)

Dữ liệu xuất: gồm N dòng, mỗi dòng xuất theo mẫu sau "Case #X: Y", trong đó X là số thứ tự của bộ test (theo đúng thứ tự) và Y là kết quả cần tìm của bộ test đó


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.