Last active
March 24, 2017 17:57
-
-
Save saisumit/d18bded9f3b70f7d1d9195bb1652fe59 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <bits/stdc++.h> | |
| using namespace std; | |
| /* When Panda is Life ! | |
| _,add8ba, | |
| ,d888888888b, | |
| d8888888888888b _,ad8ba,_ | |
| d888888888888888) ,d888888888b, | |
| I8888888888888888 _________ ,8888888888888b | |
| __________`Y88888888888888P"""""""""""baaa,__ ,888888888888888, | |
| ,adP"""""""""""9888888888P""^ ^""Y8888888888888888I | |
| ,a8"^ ,d888P"888P^ ^"Y8888888888P' | |
| ,a8^ ,d8888' ^Y8888888P' | |
| a88' ,d8888P' I88P"^ | |
| ,d88' d88888P' "b, | |
| ,d88' d888888' `b, | |
| ,d88' d888888I `b, | |
| d88I ,8888888' ___ `b, | |
| ,888' d8888888 ,d88888b, ____ `b, | |
| d888 ,8888888I d88888888b, ,d8888b, `b | |
| ,8888 I8888888I d8888888888I ,88888888b 8, | |
| I8888 88888888b d88888888888' 8888888888b 8I | |
| d8886 888888888 Y888888888P' Y8888888888, ,8b | |
| 88888b I88888888b `Y8888888^ `Y888888888I d88, | |
| Y88888b `888888888b, `""""^ `Y8888888P' d888I | |
| `888888b 88888888888b, `Y8888P^ d88888 | |
| Y888888b ,8888888888888ba,_ _______ `""^ ,d888888 | |
| I8888888b, ,888888888888888888ba,_ d88888888b ,ad8888888I | |
| `888888888b, I8888888888888888888888b, ^"Y888P"^ ____.,ad88888888888I | |
| 88888888888b,`888888888888888888888888b, "" ad888888888888888888888' | |
| 8888888888888698888888888888888888888888b_,ad88ba,_,d88888888888888888888888 | |
| 88888888888888888888888888888888888888888b,`"""^ d8888888888888888888888888I | |
| 8888888888888888888888888888888888888888888baaad888888888888888888888888888' | |
| Y8888888888888888888888888888888888888888888888888888888888888888888888888P | |
| I888888888888888888888888888888888888888888888P^ ^Y8888888888888888888888' | |
| `Y88888888888888888P88888888888888888888888888' ^88888888888888888888I | |
| `Y8888888888888888 `8888888888888888888888888 8888888888888888888P' | |
| `Y888888888888888 `888888888888888888888888, ,888888888888888888P' | |
| `Y88888888888888b `88888888888888888888888I I888888888888888888' | |
| "Y8888888888888b `8888888888888888888888I I88888888888888888' | |
| "Y88888888888P `888888888888888888888b d8888888888888888' | |
| ^""""""""^ `Y88888888888888888888, 888888888888888P' | |
| "8888888888888888888b, Y888888888888P^ | |
| `Y888888888888888888b `Y8888888P"^ | |
| "Y8888888888888888P `""""^ | |
| `"YY88888888888P' | |
| ^""""""""' | |
| */ | |
| #define REP(i, a, b) for (int i = a; i <= b; i++) | |
| #define FOR(i, n) for (int i = 0; i < n; i++) | |
| #define foreach(it, ar) for ( typeof(ar.begin()) it = ar.begin(); it != ar.end(); it++ ) | |
| #define fill(ar, val) memset(ar, val, sizeof(ar)) | |
| #define PI 3.1415926535897932385 | |
| #define uint64 unsigned long long | |
| #define Int long long | |
| #define int64 long long | |
| #define all(ar) ar.begin(), ar.end() | |
| #define pb push_back | |
| #define ff first | |
| #define ss second | |
| #define bit(n) (1<<(n)) | |
| #define Last(i) ( (i) & (-i) ) | |
| #define sq(x) ((x) * (x)) | |
| #define INF INT_MAX | |
| int main() | |
| { int t ; | |
| cin >> t ; | |
| while( t -- ) | |
| { | |
| Int n , c,x ; | |
| cin >> n >> c ; | |
| vector<Int>a(n); | |
| FOR(i,n)cin >> a[i]; | |
| sort(a.begin() , a.end() ); | |
| Int lo = -1 ; | |
| Int hi = 1e13; | |
| // binary search for the smallest worst difference: | |
| while (lo +1 <= hi) { | |
| x = (lo + hi)/ 2; | |
| /*cout<< " low "<<lo<<endl; | |
| cout<< " high "<<hi<<endl; | |
| cout<< " x "<<x<<endl;*/ | |
| // Can it be x? | |
| Int p = 1 ; | |
| Int cur = a[0]; | |
| for( int i = 1 ; i < n ;i ++ ) | |
| { | |
| if( a[i] - cur >= x ) | |
| { | |
| cur = a[i] ; | |
| p++; | |
| } | |
| } | |
| if( lo + 1 == hi )break; | |
| if (p >= c) { | |
| lo = x; // yes, we can | |
| } else { | |
| hi = x; // no, we can't | |
| } | |
| } | |
| cout<<x<<endl; | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment