0655 - Transf

From Bitnami MediaWiki
Revision as of 17:30, 4 January 2024 by Corjuc Eunice (talk | contribs) (Pagină nouă: = Cerința = Se dau două șiruri <code>a</code> și <code>b</code> cu câte <code>n</code> elemente, numere naturale din mulțimea <code>{1,2}</code>. Se dorește transformarea șirului <code>a</code> în șirul <code>b</code>, având la dispoziție următoarele operații: * interschimbarea a două elemente * înlocuirea unui element <code>1</code> cu <code>2</code> sau a unui element <code>2</code> cu <code>1</code>. Determinați pentru cele două șiruri numărul minim d...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

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[edit | edit source]

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[edit | edit source]

Programul va afișa pe ecran numărul minim ce operații C.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 1000

Exemplul 1[edit | edit source]

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[edit | edit source]

Input:

999999999999

Output:

Conditii neindeplinite

Rezolvare[edit | edit source]

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