Минимальное удаление из массива, чтобы сделать max - min <= K - PullRequest
0 голосов
/ 29 апреля 2020

Учитывая N целых чисел и K, найдите минимальное количество элементов, которые должны быть удалены, чтобы Amax-Amin <= K. После удаления элементов Amax и Amin считаются одними из оставшихся элементов. Примеры: </p>

Входные данные: a [] = {1, 3, 4, 9, 10, 11, 12, 17, 20} k = 4 Выходные данные: 5 Объяснение: Удалить 1, 3, 4 из начала и 17, 20 от конца.

является ли этот код правильным ??

https://pastebin.com/viEhuH4V

   #include<bits/stdc++.h>
using namespace std;
int main(){
    int n,i,j,k;
    cin>>n>>k;
    int arr[n];
    for(i=0;i<n;i++)cin>>arr[i];
    sort(arr,arr+n);
    for(i=0,j=n-1;i<n,i<j;){
        if(arr[j]-arr[i]>k){
            if(arr[j]-arr[i+1]<=k)
            {i++;break;         }

            else if(arr[j-1]-arr[i]<=k)
            {j--;break;         }

            i++;
            j--;
        }
        else
        break;
    }

    cout<<i+n-1-j<<endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...