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
cu2
sau a unui element2
cu1
.
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; }