В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
TheFlyHelp
TheFlyHelp
24.01.2022 13:22 •  Информатика

C++ в этой от вас потребуется написать функцию bool is_permutation(int* a, int* b, int size), которой дается два массива a и b, и она должна вернуть true, если массив b можно получить из массива a перестановкой элементов, и false, если нельзя. считайте оба массива с клавиатуры, используйте функцию и выведите «yes» или «no» в зависимости от того, что вернула функция.

Показать ответ
Ответ:
fcnhff7
fcnhff7
07.10.2020 03:46
Сортируем оба массива и проверяем, совпали ли они. Если совпали, то это перестановка.
#include <iostream>
 
int* sorted(int *A, int size) {
  int *B = new int[size];
  for (int i = 0; i < size; ++i) B[i] = A[i];
  for (int i = 0; i < size - 1; ++i) {
    for (int j = i + 1; j < size; ++j) {
      if (B[i] > B[j]) {
        int t = B[i];
        B[i] = B[j];
        B[j] = t;
      }
    }
  }
  return B;
}
 
bool arr_eq(int *A, int *B, int size) {
  for (int i = 0; i < size; ++i) {
    if (A[i] != B[i]) return false;
  }
  return true;
}
 
bool is_permutation(int* A, int* B, int size) {
  int *sA = sorted(A, size), *sB = sorted(B, size);
  bool is_perm = arr_eq(sA, sB, size);
  delete [] sA;
  delete [] sB;
  return is_perm;
}
 
int* read_arr_int(int size) {
  int *A = new int[size];
  for (int i = 0; i < size; ++i) {
    std::cin >> A[i];
  }
  return A;
}
 
int main() {
  int n = 0;
  std::cin >> n;
  int *A = read_arr_int(n), *B = read_arr_int(n);
  std::cout << (is_permutation(A, B, n) ? "YES" : "NO");
  delete [] A;
  delete [] B;
  return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота