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 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

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)