Я застрял в проблеме Миньон шеф-повара и бананы . Что является проблемой на основе бинарного поиска
Я выполняю приведенную ниже программу на следующих тестовых примерах;
И успешно прошли все тестовые случаи
Контрольный пример 1:
3 3
1 2 3
Выход:
3
Контрольный пример 2:
3 4
1 2 3
Выход:
2
Контрольный пример 3:
4 5
4 3 2 7
Выход:
4
Но когда я отправляю программу ниже, я получаю сообщение об ошибке "SIGTSTP"
Пожалуйста, помогите.
Вот мой код:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int getHours(vector<int> piles,int k){
int sum = 0;
for(int i = 0;i<piles.size();i++){
if(piles[i]%k==0)
sum+=(piles[i]/k);
else
sum+=(1+piles[i]/k);
}
return sum;
}
int main(){
int t;
cin>>t;
while(t--){
int n;
int h;
cin>>n>>h;
vector <int> piles;
int tempmax = 0;
for(int i=0;i<n;i++){
int temp;
cin>>temp;
tempmax = max(temp,tempmax);
piles.push_back(temp);
}
int low = 0;
int high = tempmax;
if(tempmax==1){
cout<<h<<endl;
continue;
}
while(low<high){
int mid = (low + high)/2;
int p=getHours(piles,mid);
if(p<=h)
high = mid;
else
low = mid + 1;
}
cout<<low<<endl;
piles.clear();
}
}