0655 - Transf
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
1cu2sau a unui element2cu1.
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
Exemplul 1
Input:
5
2 2 1 1 2
2 2 2 1 1
Output:
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.
Exemplul 2
Input:
999999999999
Output:
Conditii neindeplinite
Rezolvare
<syntaxhighlight lang="python3" line="1"> def ver(n):
if not (1<=n<=1000):
print("Conditii neindeplinite")
exit()
n = int(input()) ver(n) a = list(map(int, input().split())) b = list(map(int, input().split()))
cnt1 = 0 cnt2 = 0
for i in range(1, n + 1):
if a[i - 1] != b[i - 1]:
if a[i - 1] == 1:
cnt1 += 1
else:
cnt2 += 1
result = max(cnt1, cnt2) print(result)
</syntaxhighlight>