我陷入了问题Minion chef and Bananas。这是一个基于二进制搜索的问题
我在以下测试用例上执行以下程序; 它成功通过了所有测试案例
测试案例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();
}
}