boolcheck(int x) { ll res = 0; for (int i = 0; i < N - 1; ++i) res += ceil((arr[i + 1] - arr[i]) / x) - 1; return res <= M; }
intmain() { cin >> L >> N >> M; for (int i = 0; i < N; ++i) cin >> arr[i]; int l = 1, r = L; while (l <= r) { int mid = l + (r - l) / 2; if (check(mid)) r = mid - 1; else l = mid + 1; } cout << l; return0; }