👤

Cerința Se dau două șiruri a și b cu câte n elemente, numere naturale din mulțimea {1,2}. Se dorește transformarea șirului a în șirul b, având la dispoziție următoarele operații: interschimbarea a două elemente înlocuirea unui element 1 cu 2 sau a unui element 2 cu 1. Determinați pentru cele două șiruri numărul minim de operații prin care se transformă șirul a în șirul b. Date de intrare Programul citește de la tastatură numărul n, apoi cele n elemente ale șirului a, apoi cele n elemente ale șirului b. Date de ieșire Programul va afișa pe ecran numărul minim ce operații C. Restricții și precizări 1 ≤ n ≤ 1000

Răspuns :

Am atasat codul mai jos......

#include <iostream>
#include <valarray>

int main()
{
    int n;
    std::cin >> n;
    std::vector<int> a(n), b(n);
    for (int & elem : a) std::cin >> elem;
    for (int & elem : b) std::cin >> elem;
    const std::valarray<int> dif = decltype(dif)(a.data(), a.size()) - decltype(dif)(b.data(), b.size());
    std::cout << std::max(dif[dif == 1].size(), dif[dif == -1].size());
}


Vezi imaginea ANTIEAGLESDAVIDS