{"id":"informatyka-2026-maj-matura-rozszerzona/zad/3.2","paper_id":"informatyka-2026-maj-matura-rozszerzona","number":"3.2","points":3,"ptype":"open","subject":"informatyka","category":"matura","year":2026,"month":"maj","level":"rozszerzona","text":"Zadanie 3.2. (0-3)\nWspólną liczbę wystąpień litery x w słowach s1, s2 oznaczymy przez W(x, s1, s2) i definiujemy\njako\nW(x, s1, s2) = minimum(d(x, s1), d(x, s2))\ngdzie d(x, s) oznacza liczbę wystąpień litery x w słowie s.\nPodaj parę słów występujących w jednym wierszu w pliku pary.txt, dla której suma\nwspólnych wystąpień wszystkich liter jest największa, oraz podaj tę sumę. Jest jedna taka\npara.\n3.1.\n0-1-2\n3.2.\n0-1-\n2-3\nMINP-R0_100\nPrzykład:\nDla poniższej pary słów wypisano wspólną liczbę wystąpień wszystkich liter (wyniki wypisano\nw kolejności alfabetycznej):\nadabbcdde aadabbbccdc → a: 2, b: 2, c: 1, d: 2, e: 0\nSuma wspólnych wystąpień wszystkich liter dla pary z tego przykładu wynosi:\n2 + 2 + 1 + 2 = 7.\nDla pliku pary_przyklad.txt poprawną odpowiedzią jest\nccccdcedddddecde ccdcdddecc 10","answer":null,"answer_text":"Zadanie 3.2. (0-3)\nWymaganie ogólne\nWymagania szczegółowe\nII. Programowanie i rozwiązywanie\nproblemów z wykorzystaniem komputera\noraz innych urządzeń cyfrowych: układanie\ni programowanie algorytmów,\norganizowanie, wyszukiwanie\ni udostępnianie informacji, posługiwanie się\naplikacjami komputerowymi.\nZdający:\nP.II.1) projektuje i programuje rozwiązania\nproblemów z różnych dziedzin, stosuje przy\ntym: instrukcje wejścia/wyjścia, wyrażenia\narytmetyczne i logiczne, instrukcje\nwarunkowe, instrukcje iteracyjne, funkcje\nz parametrami i bez parametrów, testuje\npoprawność programów dla różnych\ndanych; w szczególności programuje\nalgorytmy z punktu I.2).\nII.1) projektuje i tworzy rozbudowane\nprogramy w procesie rozwiązywania\nproblemów, wykorzystuje w programach\ndobrane do algorytmów struktury danych,\nw tym struktury dynamiczne i korzysta\nz dostępnych bibliotek dla tych struktur.\nII.2) sprawnie posługuje się zintegrowanym\nśrodowiskiem programistycznym przy\npisaniu, uruchamianiu i testowaniu\nprogramów.\nZasady oceniania\n3 pkt - odpowiedź poprawna, w tym:\n2 pkt - para słów\n1 pkt - liczba.\n0 pkt - odpowiedź niepoprawna albo brak odpowiedzi.\nPoprawna odpowiedź\naacbcccaacacbcabac cccccaaaacaccbabcba 18","solution":"`aacbcccaacacbcabac cccccaaaacaccbabcba` — suma **18**","image":"img/informatyka-2026-maj-matura-rozszerzona/zad-3.2.webp","solution_image":null,"topics":"przetwarzanie plikow, kody ASCII, prefiksosufiks, algorytmy na slowach","page_from":10,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturaonline","text_source":"ocr","source_label":"Informatyka · Matura · maj 2026 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 3.2. (0-3)<br>Wspólną liczbę wystąpień litery x w słowach s1, s2 oznaczymy przez W(x, s1, s2) i definiujemy<br>jako<br>W(x, s1, s2) = minimum(d(x, s1), d(x, s2))<br>gdzie d(x, s) oznacza liczbę wystąpień litery x w słowie s.<br>Podaj parę słów występujących w jednym wierszu w pliku pary.txt, dla której suma<br>wspólnych wystąpień wszystkich liter jest największa, oraz podaj tę sumę. Jest jedna taka<br>para.<br>3.1.<br>0-1-2<br>3.2.<br>0-1-<br>2-3<br>MINP-R0_100<br>Przykład:<br>Dla poniższej pary słów wypisano wspólną liczbę wystąpień wszystkich liter (wyniki wypisano<br>w kolejności alfabetycznej):<br>adabbcdde aadabbbccdc → a: 2, b: 2, c: 1, d: 2, e: 0<br>Suma wspólnych wystąpień wszystkich liter dla pary z tego przykładu wynosi:<br>2 + 2 + 1 + 2 = 7.<br>Dla pliku pary_przyklad.txt poprawną odpowiedzią jest<br>ccccdcedddddecde ccdcdddecc 10</p>","answer_text_html":"<p>Zadanie 3.2. (0-3)<br>Wymaganie ogólne<br>Wymagania szczegółowe<br>II. Programowanie i rozwiązywanie<br>problemów z wykorzystaniem komputera<br>oraz innych urządzeń cyfrowych: układanie<br>i programowanie algorytmów,<br>organizowanie, wyszukiwanie<br>i udostępnianie informacji, posługiwanie się<br>aplikacjami komputerowymi.<br>Zdający:<br>P.II.1) projektuje i programuje rozwiązania<br>problemów z różnych dziedzin, stosuje przy<br>tym: instrukcje wejścia/wyjścia, wyrażenia<br>arytmetyczne i logiczne, instrukcje<br>warunkowe, instrukcje iteracyjne, funkcje<br>z parametrami i bez parametrów, testuje<br>poprawność programów dla różnych<br>danych; w szczególności programuje<br>algorytmy z punktu I.2).<br>II.1) projektuje i tworzy rozbudowane<br>programy w procesie rozwiązywania<br>problemów, wykorzystuje w programach<br>dobrane do algorytmów struktury danych,<br>w tym struktury dynamiczne i korzysta<br>z dostępnych bibliotek dla tych struktur.<br>II.2) sprawnie posługuje się zintegrowanym<br>środowiskiem programistycznym przy<br>pisaniu, uruchamianiu i testowaniu<br>programów.<br>Zasady oceniania<br>3 pkt - odpowiedź poprawna, w tym:<br>2 pkt - para słów<br>1 pkt - liczba.<br>0 pkt - odpowiedź niepoprawna albo brak odpowiedzi.<br>Poprawna odpowiedź<br>aacbcccaacacbcabac cccccaaaacaccbabcba 18</p>","solutions":[{"source":"maturaonline","label":"matura-online.pl","kind":"text","html":"<p><code>aacbcccaacacbcabac cccccaaaacaccbabcba</code> — suma <strong>18</strong></p>"},{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź:</h4>\n<p><strong>Para:</strong> <code>aacbcccaacacbcabac cccccaaaacaccbabcba</code>, <strong>suma wspólnych wystąpień = 18.</strong></p>\n<h4>Uzasadnienie</h4>\n<p>Dla pary słów $s_1, s_2$ i każdej litery $x$ liczymy $d(x,s_1)$ i $d(x,s_2)$ (liczby wystąpień) oraz<br>$$W(x,s_1,s_2)=\\min\\big(d(x,s_1),\\,d(x,s_2)\\big).$$<br>Suma wspólnych wystąpień to $\\sum_x W(x,s_1,s_2)$ - czyli tzw. przekrój wielozbiorów liter. Szukamy pary o największej takiej sumie.</p>\n<p>Algorytm (dla każdego wiersza; wygodnie użyć <code>Counter</code>):</p>\n<p>```python<br>from collections import Counter<br>naj = -1; para = (&#x27;&#x27;, &#x27;&#x27;)<br>with open(&#x27;pary.txt&#x27;) as f:<br>for line in f:<br>s1, s2 = line.split()<br>c1, c2 = Counter(s1), Counter(s2)<br>suma = sum(min(c1[x], c2[x]) for x in set(c1) &amp; set(c2))<br>if suma &gt; naj:<br>naj = suma; para = (s1, s2)<br>print(para[0], para[1], naj)</p>\n<p>Wysoka suma wspólnych wystąpień występuje, gdy oba słowa są długie i zbudowane z tego samego, wąskiego zestawu liter (tu głównie <code>a</code>, <code>b</code>, <code>c</code>). Dla podanej pary oba słowa mają po 18 znaków złożonych niemal wyłącznie z <code>a</code>, <code>b</code>, <code>c</code>, przez co minima wystąpień dla poszczególnych liter sumują się do maksymalnej wartości:<br>$$\\sum_x W(x,s_1,s_2) = \\mathbf{18}.$$</p>\n<p>Odpowiedź zapisujemy w <code>wyniki3.txt</code>, poprzedzając ją numerem zadania.</p>\n<h4>Zasady oceniania CKE</h4>\n<ul><li><strong>3 pkt</strong> łącznie: <strong>2 pkt</strong> za poprawną parę słów, <strong>1 pkt</strong> za poprawną liczbę (18).</li><li><strong>0 pkt</strong> - odpowiedź niepoprawna lub brak.</li></ul>\n<p>(Uwaga: brak konkretnej odpowiedzi ze strony AI jest rozbieżny z kluczem - wymagana jest wskazana para i suma <strong>18</strong>.)</p>"}]}