# PBinfo #655 – Transf – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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

Exemplu:
Intrare

5
2 2 1 1 2 
2 2 2 1 1 
Ieșire

1
Explicație
Prin interschimbarea în primul șir a elementului de pe poziția 3 cu cel de pe poziția 5 se obține al doilea șir.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n , a[1005] , b[1005];
int main()
{
    cin >> n;
    for(int i =1 ; i <= n ; i ++)
        cin >> a[i];
    for(int i =1 ; i <= n ; i ++)
        cin >> b[i];
    int cnt1 = 0, cnt2 = 0;
    for(int i = 1 ; i <= n ; ++i)
        if(a[i] != b[i])
            if(a[i] == 1)
                cnt1 ++;
            else
                cnt2 ++;
    if(cnt1 > cnt2)
        cout << cnt1;
    else
        cout << cnt2;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/655)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/655/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-655/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
