Написать ** C++:даны два массива. Определить существуют ли в первом массиве такие два...

0 голосов
49 просмотров

Написать на C++:даны два массива. Определить существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трёх элементов второго массива


Информатика (23 баллов) | 49 просмотров
Дан 1 ответ
0 голосов

#include

#include


/*

Определить существуют ли в первом массиве такие два элемента,

что их сумма равна сумме каких-либо трёх элементов второго массива

*/

#define DEBUG // для себя.

int main()

{

   int

       size1,

       size2;

       

   std::cout << "Введите размер 1-го массива(вектора): " << std::endl;    </p>

   std::cin >> size1;

   

   std::cout << "Введите размер 2-го массива(вектора): " << std::endl;    </p>

   std::cin >> size2;

   

   int* arr1 = new int[size1];

   int* arr2 = new int[size2];

   

   for(int i = 0; i < size1; i++)//инициализируем значения первого массива с клавиатуры

       std::cin >> arr1[i];

   for(int i = 0; i < size2; i++)//инициализируем значения второго массива с клавиатуры

       std::cin >> arr2[i];

   

   int

       sum1(0),//сумма двух элементов 1го массива

       sum2(0);//сумма двух элементов 2-го массива

       

   for(int i = 0; i < size1; i++)

   {

       for(int j = 1; j < size2-1; j++)

       {

           if(i == j) continue;

           sum1 = arr1[i] + arr1[j];

           

           for(int ii = 0; ii < size2; ii++)

           {

               for(int jj = 0; jj < size2; jj++)

               {

                   for(int ff = 0; ff < size2; ff++)

                   {

                       if(ii == jj || jj == ff || ii == ff) continue;

                       sum2 = arr2[ii] + arr2[jj] + arr2[ff];

                   

                       if(sum1 == sum2)

                       {

                           std::cout << "Существует." << std::endl;</p>

                           #if defined DEBUG

                               std::cout << arr1[i] << " " << arr1[j] << std::endl;</p>

                               std::cout << arr2[ii] << " " << arr2[jj] << " " << arr2[ff] << std::endl;</p>

                           #endif

                           delete[] arr1;

                           delete[] arr2;

                           

                           return 0;

                       }

                   }

               }

           }

       }

   }

   std::cout << "Не существует." << std::endl;</p>

   

   delete[] arr1;

   delete[] arr2;

   

   return 0;

}


(4.0k баллов)