Есть ответ 👍

В этой задаче от вас потребуется написать функцию bool is_permutation(int* A, int* B, int size), которой дается два массива A и B, и она должна вернуть true, если массив B можно получить из массива A перестановкой элементов, и false, если нельзя.

Считайте оба массива с клавиатуры, используйте функцию и выведите «YES» или «NO» в зависимости от того, что вернула функция.

Формат входных данных
На первой строке дано одно целое число N (1 ≤ N ≤ 100) — количество элементов в массивах. В второй строке заданы целые числа, не превосходящие 230 по абсолютной величине, — элементы первого массива. В третьей строке в том же формате — элементы второго массива.

Формат выходных данных
Требуется вывести «YES», если можно получить второй массив из первого перстановкой элементов, и «NO», если нельзя.

входные данные
4
1 2 3 4
4 3 2 1

5
1 2 3 2 1
1 2 2 3 3
выходные данные
YES

NO

109
484
Посмотреть ответы 2

Ответы на вопрос:


Объяснение:

В общем сделал так чтобы проверялись вообще все возможные перестановки чисел, а не одинарные

#include <iostream>

using namespace std;

bool is_permutation(int* A, int* B, int size);

int main()

{

int *A, *B, N;

bool result;

cin >> N;

A = new int[N];

B = new int[N];

for (int i = 0; i < N; i++) cin >> A[i];

for (int i = 0; i < N; i++) cin >> B[i];

result = is_permutation(A, B, N);

if (result) cout << "YES";

else cout << "NO";

return 0;

}

bool is_permutation(int* A, int* B, int size)

{

int CountInA, CountInB;

for (int i = 0; i < size; i++) { // Перебираем по одному все элементы массива B

 CountInA = 0;

 CountInB = 0;

 for (int j = 0; j < size; j++)

 {

  if (B[i] == A[j]) CountInA++; // Считаем сколько раз этот элемент встретился в массиве А

  if (B[i] == B[j]) CountInB++; // Считаем сколько раз этот элемент встретился в массиве B

 }

 if (CountInA != CountInB) return false;// Если счётчики не совпали, то сразу выходим из цикла

}

return true;// Если счётчики всегда совпадали, то мы попадём сюда и массивы состоят из одинакового количества одинаковых элементов

}


с чего нужно переводить?

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS