Guest User

Untitled

a guest
Dec 3rd, 2018
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5.  
  6. bool ispossible(ll int arr[],ll int n,ll int dist,ll int c)
  7. {
  8. ll int cowscompleted=1,lastpos=0;
  9. for(ll int i=1;i<n;i++)
  10. {
  11. if((arr[i]-arr[lastpos])>=dist)
  12. {
  13. lastpos=i;
  14. cowscompleted++;
  15. if(cowscompleted==c)
  16. return true;
  17. }
  18. }
  19. return false;
  20. }
  21.  
  22. void binarysearch(ll int arr[],ll int n,ll int c)
  23. {
  24. ll int start=0,end=n-1,mid,dist;
  25. while(end>=start)
  26. {
  27. mid=(start+end)/2;
  28. dist=arr[mid]-arr[0];
  29. if(ispossible(arr,n,dist,c))
  30. start=mid+1;
  31. else
  32. end=mid-1;
  33. }
  34. cout<<arr[start-1]-arr[0]<<endl;
  35. }
  36.  
  37. int main() {
  38. ll int t;
  39. cin>>t;
  40. while(t--)
  41. {
  42. ll int n,c;
  43. cin>>n>>c;
  44. ll int x[n];
  45. for(ll int i=0;i<n;i++)
  46. cin>>x[i];
  47. sort(x,x+n);
  48. binarysearch(x,n,c);
  49. }
  50. return 0;
  51. }
Add Comment
Please, Sign In to add comment