Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int magicFives(int *arr, int p, int r) {
- if ((r-p+1) <= 5) {
- return arr[p + (r-p)/2];
- }
- int liczba_median = ((r-p+1)+4)/5;
- int *medians = new int[liczba_median];
- for (int i = 0; i < liczba_median; i++) {
- int begin = p + i*5;
- int size = min(5, r-begin+1);
- sort(arr+begin, arr+begin+size);
- medians[i] = arr[begin+(size-1)/2];
- }
- int res = magicFives(medians, 0, liczba_median-1);
- delete[] medians;
- return res;
- }
- int select(int *arr, int p, int r, int i) {}
- int main() {
- int n;
- cin >> n;
- int *arr = new int[n];
- for (int i = 0; i < n; i++)
- cin >> arr[i];
- int res = magicFives(arr, 0, n-1);
- cout << "Wynik = " << res << endl;
- delete[] arr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement