Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

CLUSTER - Phân cụm

     Phân cụm là một bài toán có ý nghĩa ứng dụng quan trọng trong các lĩnh vực như học máy, khai phá dữ liệu, thu thập dữ liệu và đòi hỏi phân hoạch tập các điểm dữ liệu ra thành các nhóm sao cho các điểm trong cùng một nhóm là “gần nhau”  và “cách xa” các nhóm khác. Trong bài này chúng ta xét một dạng đơn giản của bài toán phân cụm.

  Cho tập gồm n đối tượng X = {x1, x2, ..., xn}, khoảng cách d(xi, xj) giữa mọi cặp xi, xj và một số nguyên dương k (n). Giả thiết là d(xi, xj) là các số nguyên dương, d(xi, xj) = d(xj, xi) và d(xi, xi) = 0, với mọi i = 1, 2, ..., n.

   Ta gọi một cách phân cụm là một  cách phân hoạch tập X ra thành k tập con khác rỗng (mỗi tập con như vậy được gọi là một cụm). Cho C = {C1, C2, ..., Ck}  là một cách phân cụm, ta gọi độ phân tách của cách phân cụm C (ký hiệu là r(C )) là giá trị nhỏ nhất trong số các khoảng cách giữa hai phần tử bất kỳ thuộc hai cụm khác nhau, nghĩa là

r(C ) = min {d(u,v): u thuộc Cp, v thuộc Cq , p # q }.

Yêu cầu: Tìm cách phân cụm với độ phân tách là lớn nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên nk. (2 ≤ K ≤ N ≤ 200)
  • Dòng thứ i trong số n dòng tiếp theo ghi các số d(xi, x1), d(xi, x2), ..., d(xi, xn), i = 1, 2, ..., n. (d(xi, x1) ≤ 32767)

Output

    Độ tách phân cụm tìm được

Example

Input
4 3
0 1 2 3
1 0 2 3
2 2 0 3
3 3 3 0

Output:
2

Added by:special_one
Date:2010-11-08
Time limit:0.200s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C C++ 4.3.2 CPP C99 JAVA PAS-FPC
Resource:Olympic 2006

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.