jayati

Minimize the Heights II

Oct 26th, 2023
822
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. //{ Driver Code Starts
  2. // Initial template for C++
  3.  
  4. #include <bits/stdc++.h>
  5. using namespace std;
  6.  
  7. // } Driver Code Ends
  8. // User function template for C++
  9.  
  10. class Solution {
  11.   public:
  12.     int getMinDiff(int arr[], int n, int k) {
  13.         if(n==1)
  14.         {
  15.             return 0;
  16.         }
  17.         sort(arr,arr+n);
  18.         int d=arr[n-1]-arr[0];
  19.         int mi,mx;
  20.         for(int i=1;i<n;i++)
  21.         {
  22.             if(arr[i]-k<0)
  23.             {
  24.                 continue;
  25.             }
  26.             mx = max(arr[i-1]+k,arr[n-1]-k);
  27.             mi = min(arr[0]+k,arr[i]-k);
  28.             d = min(d,mx-mi);
  29.            
  30.         }
  31.         return d;
  32.     }
  33. };
  34.  
  35. //{ Driver Code Starts.
  36. int main() {
  37.     int t;
  38.     cin >> t;
  39.     while (t--) {
  40.         int n, k;
  41.         cin >> k;
  42.         cin >> n;
  43.         int arr[n];
  44.         for (int i = 0; i < n; i++) {
  45.             cin >> arr[i];
  46.         }
  47.         Solution ob;
  48.         auto ans = ob.getMinDiff(arr, n, k);
  49.         cout << ans << "\n";
  50.     }
  51.     return 0;
  52. }
  53. // } Driver Code Ends
Advertisement
Add Comment
Please, Sign In to add comment