Задать вопрос
25 июля, 00:46

C++

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

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

+2
Ответы (1)
  1. 25 июля, 04:44
    0
    Сортируем оба массива и проверяем, совпали ли они. Если совпали, то это перестановка.

    #include

    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;

    }
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «C++ В этой задаче от вас потребуется написать функцию bool is_permutation (int * A, int * B, int size), которой дается два массива A и B, и ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы