class Solution {
public:
// bool binary_search(int left, int int hour)
// {
// }
int minSpeedOnTime(vector<int>& dist, double hour) {
//二分
int left=1;
int right=1e7;
int id=0;
while(left<=right)
{
int med=(left+right)/2;
double sum=0.0;
for(int i=0;i<dist.size()-1;i++)
{
sum +=ceil(dist[i]/(med+0.0));
}
sum+=dist[dist.size()-1]/(med+0.0);
if(sum<=hour)
{
right=med-1;
id=1;
}
else{
left=med+1;
}
}
if(id) return left;
else return -1;
}
};