Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. using namespace std;
  2.  
  3. int main()
  4. {
  5.     int n; //размер матрицы
  6.     cin >> n;
  7.  
  8.     int* arr = new int[n];
  9.     for (int i = 0; i < n; i++)
  10.         cin >> arr[i];
  11.     int* resultArr = new int[n / 2];
  12.     int curInd = 0;
  13.     bool isFounded;
  14.     //суть решения состоит в том, что я создал массив , длинною меньше данного в 2 раза, т.к. там мы будем хранить результаты , а раз их должно находиться по 2 в массиве , то и максимальное число
  15.     //результатов будет n / 2, curInd - это индекс массива с результатами, чтобы запоминать , сколько чисел мы добавили в массив , isFounded я использую для проверки, д
  16.     for (int i = 0; i < n; i++) {
  17.         int count = 1;
  18.         //тут я ищу одинаковые элементы  и считаю их
  19.         for (int j = 0; j < n; j++)
  20.             if (arr[j] == arr[i] && i != j)
  21.                 count++;
  22.         //если же число элементов   == 2 , начинаем смотреть , находили ли мы его раньше          
  23.         if (count == 2) {
  24.             isFounded = false;
  25.             for (int j = 0; j < curInd; j++)
  26.                 if (resultArr[j] == arr[i])
  27.                     isFounded = true;
  28.             if (!isFounded) { //если не находили, то добавляем в массив результатов и сдвигаем индекс
  29.                 resultArr[curInd] = arr[i];
  30.                 curInd++;
  31.             }
  32.         }
  33.     }
  34.     for (int i = 0; i < curInd; i++)
  35.         cout << resultArr[i] << " ";
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement