Advertisement
allia

к наибольший

Oct 20th, 2020 (edited)
2,138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. void sift (int *arr, int first, int last)
  7.  
  8.  {
  9.   int j = first;
  10.   int k = first*2+1;
  11.  
  12.   while (k <= last)
  13.   {
  14.     if (k < last && arr[k+1] < arr[k])
  15.      k++;
  16.      if (arr[j] < arr[k])
  17.      break;
  18.      else if (arr[j] >= arr[k])
  19.      {
  20.         swap(arr[j], arr[k]);
  21.          j = k;
  22.          k = k*2+1;
  23.      }
  24.  }
  25. }
  26.  
  27. void sort (int *arr, int razmer)
  28. {
  29.   for (int i = razmer/2-1; i >= 0; i--)
  30.    sift (arr, i, razmer-1);
  31. }
  32.  
  33. int main()
  34. {
  35.   int n = 0, k = 0, znach = 0, x = 1, shetchik = 0;
  36.  
  37.   scanf("%d", &n);
  38.   scanf("%d", &k);
  39.  
  40.   int *result = new int[k];
  41.  
  42. for (int i = 0; i<k; i++)
  43.   {
  44.     scanf("%d", &znach);
  45.     result[i] = znach;
  46.   }
  47.  
  48. sort (result, k);
  49.  
  50.  for (int i = k; i < n; i++)
  51.   {
  52.    scanf("%d", &znach); // вводим значение
  53.  
  54.     if (result[0] < znach)
  55.       {
  56.         result[0] = znach;
  57.         sift (result, 0, k-1);
  58.       }
  59.   }
  60.  
  61. printf ("%d", result[0]);
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement