Ошибка выполнения SIGTSTP в нижеприведенной c ++ программе - PullRequest
0 голосов
/ 17 января 2019

Я застрял в проблеме Миньон шеф-повара и бананы . Что является проблемой на основе бинарного поиска

Я выполняю приведенную ниже программу на следующих тестовых примерах; И успешно прошли все тестовые случаи

Контрольный пример 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();

    }


}
...