0655 - Transf
De la Universitas MediaWiki
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
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
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)