Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
#include <iostream> #include <time.h> using namespace std; // прототипы функций void merge(int*, int, int); void mergeRec(int*, int, int); int N; int main() { cin >> N; // количество входных элементов // если пригодится для отладки, генератор случайных чисел // srand(time(NULL)); // инициализатор генератора // rand()%99 + 1: сгенерирует случайное число от 1 до 99. int* A = new int[N]; for (int i = 0; i < N; i++) { cin >> A[i]; // заполнение массива } mergeRec(A, 0, N-1); // вызов сортировки for (int i = 0; i < N; i++) { cout << A[i] << " "; // печать } delete[] A; // освободили память return 0; } void mergeRec(int* A, int left, int right) { // рекурсивный вызов разделения, затем вызов слияния // необходимо реализовать } void merge(int *A, int left, int right){ // процедура для слияния A[left .. mid] и A[mid+1 .. right]; // необходимо реализовать };Ввод
Пример ввода
5 5 4 3 2 1
Пример вывода
1 2 3 4 5