Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void qsortRecursive2(int** mas, int size) {
- //Указатели в начало и в конец массива
- int i = 0;
- int j = size - 1;
- //Центральный элемент массива
- int mid = mas[size / 2][1];
- //Делим массив
- do {
- //Пробегаем элементы, ищем те, которые нужно перекинуть в другую часть
- //В левой части массива пропускаем(оставляем на месте) элементы, которые меньше центрального
- while (mas[i][1] < mid) {
- i++;
- }
- //В правой части пропускаем элементы, которые больше центрального
- while (mas[j][1] > mid) {
- j--;
- }
- //Меняем элементы местами
- if (i <= j) {
- int tmp = mas[i][1];
- mas[i][1] = mas[j][1];
- mas[j][1] = tmp;
- tmp = mas[i][0];
- mas[i][0] = mas[j][0];
- mas[j][0] = tmp;
- i++;
- j--;
- }
- } while (i <= j);
- //Рекурсивные вызовы, если осталось, что сортировать
- if (j > 0) {
- //"Левый кусок"
- qsortRecursive2(mas, j + 1);
- }
- if (i < size) {
- //"Првый кусок"
- qsortRecursive2(&mas[i], size - i);
- }
- }
- void task5_1()
- {
- int n,k;
- cin >> n;
- cin >> k;
- int** ar = new int*[n];
- for (size_t i = 0; i < n; i++)
- {
- ar[i] = new int[2];
- }
- for (int i = 0; i < n; i++)
- {
- ar[i][0] = rand() % 365 + 1;
- ar[i][1]= (ar[i][0]+ rand() % 40 + 1)% 365;
- }
- // показывает, что ввели
- for (size_t i = 0; i < n; i++)
- {
- for (size_t j = 0; j < 2; j++)
- {
- cout << ar[i][j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- qsortRecursive2(ar, n);
- // показывает, отсортированный массив
- for (size_t i = 0; i < n; i++)
- {
- for (size_t j = 0; j < 2; j++)
- {
- cout << ar[i][j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- int j = 0;
- bool flag = true;
- for (size_t i = k; (i < n)&flag; i++)
- {
- if (ar[i][0] > ar[j][1])// если дата выезда 1 меньше(раньше), чем дата въезда 2, то 2 можно принять
- {
- //старые уезжают, новые приезжают
- j++;
- }
- else
- {
- flag = false;
- }
- }
- cout << endl;
- if (!flag)
- cout << "Unfortunately, we will not be able to settle everyone";
- else cout << "We have enough rooms";
- }
Advertisement
Add Comment
Please, Sign In to add comment