#include #define forn(i, n) for (int i = 0; i < (int)(n); i++) #define for1(i, n) for (int i = 1; i < (int)(n); i++) #define fore(i, l, r) for (int i = (int)(l); i <= (int)(r); i++) #define ford(i, n) for (int i = (int)(n) - 1; i >= 0; i--) #define pb push_back #define eb emplace_back #define fi first #define se second #define mp make_pair #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector vi; typedef vector vll; typedef vector vvi; typedef vector vvll; typedef set si; typedef pair pii; typedef set spii; typedef si::iterator sit; int T, N, C; int a[100000]; int check(int min_val) { int pre = a[0]; int cnt = 1; fore(i, 1, N - 1) { if (a[i] - pre >= min_val) { ++cnt; pre = a[i]; if (cnt == C) return 1; } } return 0; } int main() { scanf("%d", &T); forn(t, T) { scanf("%d %d", &N, &C); forn(i, N) scanf("%d", a + i); sort(a, a + N); int lo = 0, hi = a[N-1]; int mid; while (hi - lo > 1) { mid = (hi + lo) >> 1; if (check(mid)) { lo = mid; } else hi = mid; } printf("%d\n", lo); } return 0; }