kokochef

max-in-subarray

Jun 13th, 2018
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. int maxInSubarray(int *a, int s, int e){
  6.     if(s == e){
  7.         return a[s];
  8.     }
  9.  
  10.     else{
  11.         int m = (s + e) / 2;
  12.         return max(maxInSubarray(a, s, m), maxInSubarray(a, m + 1, e));
  13.     }
  14. }
  15.  
  16. int main(){
  17.  
  18.     int n, k;
  19.     cin>>n>>k;
  20.  
  21.     int *a = new int[n];
  22.     for(int i=0; i<n; i++){
  23.         cin>>a[i];
  24.     }
  25.  
  26.     // //D&C max finding O(nlogn)
  27.     int s, e;
  28.     for(int i = 0; i < n - k + 1; i++){
  29.         s = i;
  30.         e = i + k - 1;
  31.         cout<<maxInSubarray(a, s, e)<<" ";
  32.     }
  33.     return 0;
  34. }
Add Comment
Please, Sign In to add comment