#include <iostream>

using namespace std;

int main(){
    int size, negative_counter, positive_counter, element_counter;

    negative_counter = positive_counter = element_counter = 0;

    // ввод размера массива пока размер не будет больше 0
    while (true){
		cout << "Input size of array: " << endl;
        cin >> size;
		if (size < 1){
			cout << "The size of array can't be less than 1." << endl;
			cout << "---------------------------------------" << endl;
		}
        else {
            cout << "---------------------------------------" << endl;
            break;
        }
	}

    int *array = new int [size]; // инициализация динамического массива чисел с размером [size]

    // ввод массива
    cout << "Input array's elements: " << endl;
    for (int i = 0; i < size; i++){
		cin >> array[i];
	}

	cout << "---------------------------------------" << endl;

    // вывод массива
    cout << "Your array:" << endl << "| ";
    for (int i = 0; i < size; i++){
		cout << array[i] << " | ";
	}

    cout << endl << "---------------------------------------" << endl;

    // подсчёт отрицательных и не отрицательных элементов
    for (int i = 0; i < size; i++){
        if (array[i] < 0){
            negative_counter++;
        }
        else {
            positive_counter++;
        }
    }

    // проверка пограничных случаев
    if (negative_counter <= 0){ // если нет отрицательных элементов для вывода, то
        cout << "There are no negative elements in the array to delete." << endl; // выводим сообщение об ошибке
        delete[] array; // Очистка ОЗУ от динамического массива
        exit(0); // останавливаем программу
    }
    if (positive_counter < 1){ // если нет положительных элементов для вывода, то
        cout << "There are no positive elements in the array to output." << endl; // выводим сообщение об ошибке
        delete[] array; // Очистка ОЗУ от динамического массива
        exit(0); // останавливаем программу
    }

    int *result_array = new int [size - negative_counter]; // инициализация динамического массива положительных чисел с размером [negative_counter]

    for (int i = 0; i < size; i++){
        if (array[i] >= 0){
            result_array[element_counter] = array[i];
            element_counter++;
        }
    }

    // вывод массива-результата
    cout << "Result array:" << endl << "| ";
    for (int i = 0; i < element_counter; i++){
        cout << result_array[i] << " | ";
    }

    cout << endl;

    delete[] array;
    delete[] result_array; 

	return 0;
}
