Cześć,
Jakbyście mieli chwilkę to moglibyście pomóc mi w znalezieniu błędu w tym kodzie:
#include<iostream>
#include<algorithm>
using namespace std;
int n,c;
int find(int mid,int array[])
{
int cows=1,pos=array[0];
for(int i=1;i<n;i++)
{
if(array[i]-pos>=mid)
{
pos=array[i];
cows++;
if(cows==c) return 1;
}
}
return 0;
}
int bs(int array[])
{
int low=0,high=array[n-1],max=-1;
while(high>low)
{
int mid=(high+low)/2;
if(find(mid,array)==1)
{
if(mid>max)
{
max=mid;
low=mid+1;
}
}
else
{
high=mid;
}
}
return max;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>c;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
sort(arr,arr+n);
cout<<bs(arr);
}
return 0;
}