Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using namespace std;
- int main()
- {
- int n; //размер матрицы
- cin >> n;
- int* arr = new int[n];
- for (int i = 0; i < n; i++)
- cin >> arr[i];
- int* resultArr = new int[n / 2];
- int curInd = 0;
- bool isFounded;
- //суть решения состоит в том, что я создал массив , длинною меньше данного в 2 раза, т.к. там мы будем хранить результаты , а раз их должно находиться по 2 в массиве , то и максимальное число
- //результатов будет n / 2, curInd - это индекс массива с результатами, чтобы запоминать , сколько чисел мы добавили в массив , isFounded я использую для проверки, д
- for (int i = 0; i < n; i++) {
- int count = 1;
- //тут я ищу одинаковые элементы и считаю их
- for (int j = 0; j < n; j++)
- if (arr[j] == arr[i] && i != j)
- count++;
- //если же число элементов == 2 , начинаем смотреть , находили ли мы его раньше
- if (count == 2) {
- isFounded = false;
- for (int j = 0; j < curInd; j++)
- if (resultArr[j] == arr[i])
- isFounded = true;
- if (!isFounded) { //если не находили, то добавляем в массив результатов и сдвигаем индекс
- resultArr[curInd] = arr[i];
- curInd++;
- }
- }
- }
- for (int i = 0; i < curInd; i++)
- cout << resultArr[i] << " ";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement