fbpx

Problema #655 – Transf – Rezolvari PBInfo

de Mihai-Alexandru

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.

#include <bits/stdc++.h>
using namespace std;
int n , a[1005] , b[1005] , cnt1 , cnt2;
int main()
{
    cin >> n;
    for(int i = 1 ; i <= n ; i ++) cin >> a[i];
    for(int i = 1 ; i <= n ; i ++) cin >> b[i];
    for(int i = 1 ; i <= n ; ++i)
        if(a[i] != b[i])
            if(a[i] == 1) cnt1 ++;
            else cnt2 ++;
    cout << max(cnt1 , cnt2);
    return 0;
}
Comentarii

S-ar putea sa iti placa