Удалить из массива элемент, расположенный после 1-го max, и элемент после 1-го min)

Задача такая: 1)Удалить из массива элемент, расположенный после первого элемента с максимальным значением, и элемент после первого элемента с минимальным значением. 2)Заменить последний из нулевых элементов в массиве на три подряд идущих нулевых элемента. Если такая замена невозможна, выдать об этом сообщение. Помогите, пжл! сам бился- не могу...завтра последний день и сдача ведомостей!!!
2 ответа

//1
    const int dim=8;
    int in[dim]={0,-1,2,3,4,6,4,-9},*init=in; 
    int *min=min_element(init,init+dim);
    int *max=max_element(init,init+dim);
    bool index=false;
    int* end=remove_if(init,init+dim,[&min,&max,&index](const int & elem){
        if(index){
            index=false;
            return true;
        };
        if(elem==*min||elem==*max)index=true;
        return false;
    });
    while(init!=end)cout<<*init++<<" ";
    
    //2
    const int dim2=10;
    int in2[dim2]={1,2,3,4,0,3,0,4,5,9},*init2=in2,*index2;
    int result[dim2+2]={0},*init3=result;
    if((index2=find_end(init2,init2+dim2,&errno,&errno+1))!=init2+dim2){
        copy(init2,index2,init3);
        init3+=(index2-init2)+3;
        copy(++index2,init2+dim2,init3);
    }else cout<<"Isn't null";    
    cout<<endl;
    for(int i=0;i<dim2+2;i++){
        cout<<result[i]<<" ";
    };


Mutex, спасибо!!!! Ты проверял, все работает? у меня с ноутом проблемы,десятая версия не открывает.