Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <algorithm>
- #define KONJ 42 - 42
- #define MAXN 100042
- using namespace std;
- int T, N, K;
- int niz[MAXN];
- bool greedy( int value ){
- int last = N - 1, tmp = K - 1;
- for ( int i = N - 1; i >= 0; --i ){
- if ( niz[last] - niz[i] >= value ){ --tmp; last = i; }
- }
- if ( tmp <= 0 ){ return true; }
- return false;
- }
- int binary_search( int begin, int end ){
- int mid;
- while ( begin + 1 != end ){
- mid = ( begin + end ) / 2;
- if ( greedy( mid ) ){ begin = mid; } else { end = mid; }
- }
- if ( greedy( begin ) ){ return begin; }
- return mid;
- }
- void solve(){
- scanf( "%d%d", &N, &K );
- for ( int i = 0; i < N; ++i ){
- scanf( "%d", &niz[i] );
- }
- sort( niz, niz + N );
- printf( "%d\n", binary_search( 0, niz[N - 1] ) );
- }
- int main( void ){
- scanf( "%d", &T );
- for ( int t = 0; t < T; ++t ){
- solve();
- }
- return KONJ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement