#include <iostream>

using namespace std;

int main(){
	int size; // размер массива
	bool uniq; // переменная для определения уникальности значения
 
	cout << "Input array's size: ";
	cin >> size; // ввод размера 

	if (size < 1){ // проверка на исключение
		cout << "Size can't be less than 1." << endl;
		return 0;
	}

	int *array = new int [size]; // создание массива с заданным размером
	// ввод элементов исходного массива
	cout << "Input array's elements:" << endl;
	for (int i = 0; i < size; i++){
		cout << i + 1 << " element: ";
		cin >> array[i];
	}
	// вывод исходного массива
	cout << endl << "Entered array: ";
	for (int i = 0; i < size; i++){
		cout << array[i] << " ";
	}

	cout << endl << "Ununiq elements: ";
	for (int i = 0; i < size; i++){
		uniq = true;
		for (int j = i; j < size; j++){ // цикл для проверки уже значений
			if (array[i] == array[j] && i != j){ // если значение равно текущему и не является самим собой, то
				uniq = false; // ставим uniq = false
				break; // останавливаем цикл
			}
		}
		for (int k = 0; k < i; k++){ // цикл для проверки уже проёденных значений
			if (array[i] == array[k]){ // если данное значение уже встречалось, то
				uniq = true; // меняем переменную uniq для невывода
				break; // останавливаем цикл
			}
		}
		if (uniq == false){ // если значение не уникально
			cout << array[i] << " "; // выводим значение 
		}
	}

	cout << endl << "Uniq elements: ";
	for (int i = 0; i < size; i++){
		uniq = true;
		for (int j = 0; j < size; j++){
			if (array[i] == array[j] && i != j){ // если значение равно текущему и не является самим собой, то
				uniq = false; // ставим uniq = false
				break; // останавливаем цикл
			}
		}
		if (uniq == true){ // если значение уникально
			cout << array[i] << " "; // выводим значение 
		}
	}

	cout << endl;

	delete[] array; // удаляем массив

	return 0;
}