{"id":"informatyka-2017-maj-matura-rozszerzona/zad/1.1","paper_id":"informatyka-2017-maj-matura-rozszerzona","number":"1.1","points":2,"ptype":"open","subject":"informatyka","category":"matura","year":2017,"month":"maj","level":"rozszerzona","text":"Zadanie 1.1. (0-2)\nDla danych z każdego wiersza w tabeli oblicz największe pole powierzchni prostokąta, które\nnie jest podzielne przez p, a długości sąsiednich boków tego prostokąta są różne (nie może on\nbyć kwadratem) i należą do zbioru A. Zapisz pole tego prostokąta w kolumnie S.\nJeżeli taki prostokąt nie istnieje, jako wynik podaj liczbę 0 (zero).\nZbiór A\np\nS - pole szukanego prostokąta lub\n0 (zero), jeśli nie można\nzbudować takiego prostokąta\n7, 5, 11, 33\n3\n77\n15, 12, 10, 6, 5, 1\n5\n6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18\n7\n4, 34, 16, 8, 6, 22, 14, 12, 2, 7\n2","answer":null,"answer_text":"Zadanie 1.1. (0-2)\nWymagania ogólne\nWymagania szczegółowe\nIII. Rozwiązywanie problemów\ni podejmowanie decyzji […],\nz zastosowaniem podejścia\nalgorytmicznego.\n5. Rozwiązywanie problemów\ni podejmowanie decyzji […], stosowanie\npodejścia algorytmicznego.\nZdający:\n2) stosuje podejście algorytmiczne do\nrozwiązywania problemu.\nSchemat punktowania\n2 p. - za prawidłową odpowiedź w trzech wierszach.\n1 p. - w przypadku tyko dwóch prawidłowych odpowiedzi.\n0 p. - za jedną poprawną odpowiedź albo za brak odpowiedzi.\nPoprawna odpowiedź:\nZbiór A\np\nS - pole szukanego prostokąta\n15, 12, 10, 6, 5, 1\n5\n72 (12*6)\n6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18\n7\n216 (18*12)\n4, 34, 16, 8, 6, 22, 14, 12, 2, 7\n2\n0","solution":"## Poprawna odpowiedź\n\n| Zbiór A | p | S |\n| 7, 5, 11, 33 | 3 | 77 |\n| 15, 12, 10, 6, 5, 1 | 5 | **72** (12·6) |\n| 6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18 | 7 | **216** (18·12) |\n| 4, 34, 16, 8, 6, 22, 14, 12, 2, 7 | 2 | **0** |\n\n## Sposób 1 - kluczowa obserwacja matematyczna\n\nIloczyn a·b nie jest podzielny przez liczbę pierwszą p **wtedy i tylko wtedy, gdy ani a, ani b nie jest podzielne przez p** (własność liczb pierwszych: jeśli p|a·b to p|a lub p|b).\n\n**Strategia:** Odfiltruj ze zbioru A wszystkie liczby podzielne przez p. Z pozostałych weź **dwie największe różne** liczby - ich iloczyn da maksimum.\n\n## Sposób 2 - analiza każdego wiersza\n\n### Wiersz 1: A = {7, 5, 11, 33}, p = 3\nLiczby niepodzielne przez 3: 7, 5, 11 (33 = 3·11 - odpada).\nNajwiększe dwie różne: 11 i 7 → **S = 11 · 7 = 77** ✓ (zgadza się z przykładem w arkuszu)\n\n### Wiersz 2: A = {15, 12, 10, 6, 5, 1}, p = 5\nLiczby niepodzielne przez 5: 12, 6, 1 (15, 10, 5 podzielne - odpadają).\nNajwiększe dwie różne: 12 i 6 → **S = 12 · 6 = 72**\n\n### Wiersz 3: A = {6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18}, p = 7\nLiczby niepodzielne przez 7: 6, 12, 10, 5, 9, 4, 8, 18 (28, 7, 14 odpadają jako wielokrotności 7).\nNajwiększe dwie różne: 18 i 12 → **S = 18 · 12 = 216**\n\n### Wiersz 4: A = {4, 34, 16, 8, 6, 22, 14, 12, 2, 7}, p = 2\nLiczby niepodzielne przez 2 (czyli nieparzyste): tylko **7**.\nMamy tylko 1 liczbę nieparzystą - nie można zbudować prostokąta o dwóch RÓŻNYCH bokach.\n**S = 0**\n\n## Sposób 3 - weryfikacja kodem (Python)\n\n```python\ndef pole_max(A, p):\nfiltr = [x for x in A if x % p != 0]\nif len(filtr) < 2:\nreturn 0\nfiltr.sort(reverse=True)\nreturn filtr[0] * filtr[1]\n\nprint(pole_max([7, 5, 11, 33], 3)) # 77\nprint(pole_max([15, 12, 10, 6, 5, 1], 5)) # 72\nprint(pole_max([6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18], 7)) # 216\nprint(pole_max([4, 34, 16, 8, 6, 22, 14, 12, 2, 7], 2)) # 0\n\n## Reference informatyczny - własności liczb pierwszych\n\n> Reference - liczby pierwsze:\n> - Liczba pierwsza p dzieli iloczyn a·b ⟺ p|a lub p|b (kluczowa własność, podstawa rozkładu na czynniki).\n> - Sprawdzenie podzielności: `a mod p == 0` w pseudokodzie / `a % p == 0` w Python/C++.\n> - Dla maksymalizacji iloczynu dwóch różnych elementów z listy bierzemy dwie największe (sortowanie malejące → wybierz [0] i [1]).\n\n## Schemat oceniania CKE\n\n> Klucz CKE (zadanie 1.1, max 2 pkt):\n> - **2 pkt** - za prawidłową odpowiedź w trzech wierszach (72, 216, 0)\n> - **1 pkt** - za prawidłową odpowiedź w dwóch wierszach\n> - **0 pkt** - za jedną poprawną odpowiedź albo brak\n\n## Typowe pułapki\n\n- **Zapomnienie warunku „boki różne\"**: w wierszu 1 nie można wziąć 33·33, choć 33² byłoby większe - boki muszą być różne. Ale 33 i tak odpada (podzielne przez 3).\n- **Wiersz 4 jest pułapką**: tylko jedna liczba nieparzysta (7), więc S = 0. Łatwo przeoczyć - np. ktoś bierze 7·jakaś_parzysta, ale wtedy iloczyn jest parzysty (czyli podzielny przez 2).\n- **Pomylenie p z dowolną liczbą** - p musi być liczbą pierwszą, dlatego stosujemy własność (jeśli p|a·b to p|a lub p|b). Dla liczb złożonych to nie działa (np. 6|2·3, ale 6∤2 i 6∤3).\n\n## Złożoność obliczeniowa\n\nPrzefiltrowanie + znalezienie 2 największych: **O(n)** dla każdego wiersza tabeli.","image":"img/informatyka-2017-maj-matura-rozszerzona/zad-1.1.webp","solution_image":null,"topics":null,"page_from":2,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturazai","text_source":"ocr","source_label":"Informatyka · Matura · maj 2017 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 1.1. (0-2)<br>Dla danych z każdego wiersza w tabeli oblicz największe pole powierzchni prostokąta, które<br>nie jest podzielne przez p, a długości sąsiednich boków tego prostokąta są różne (nie może on<br>być kwadratem) i należą do zbioru A. Zapisz pole tego prostokąta w kolumnie S.<br>Jeżeli taki prostokąt nie istnieje, jako wynik podaj liczbę 0 (zero).<br>Zbiór A<br>p<br>S - pole szukanego prostokąta lub<br>0 (zero), jeśli nie można<br>zbudować takiego prostokąta<br>7, 5, 11, 33<br>3<br>77<br>15, 12, 10, 6, 5, 1<br>5<br>6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18<br>7<br>4, 34, 16, 8, 6, 22, 14, 12, 2, 7<br>2</p>","answer_text_html":"<p>Zadanie 1.1. (0-2)<br>Wymagania ogólne<br>Wymagania szczegółowe<br>III. Rozwiązywanie problemów<br>i podejmowanie decyzji […],<br>z zastosowaniem podejścia<br>algorytmicznego.</p>\n<ol><li>Rozwiązywanie problemów</li></ol>\n<p>i podejmowanie decyzji […], stosowanie<br>podejścia algorytmicznego.<br>Zdający:</p>\n<ol><li>stosuje podejście algorytmiczne do</li></ol>\n<p>rozwiązywania problemu.<br>Schemat punktowania<br>2 p. - za prawidłową odpowiedź w trzech wierszach.<br>1 p. - w przypadku tyko dwóch prawidłowych odpowiedzi.<br>0 p. - za jedną poprawną odpowiedź albo za brak odpowiedzi.<br>Poprawna odpowiedź:<br>Zbiór A<br>p<br>S - pole szukanego prostokąta<br>15, 12, 10, 6, 5, 1<br>5<br>72 (12*6)<br>6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18<br>7<br>216 (18*12)<br>4, 34, 16, 8, 6, 22, 14, 12, 2, 7<br>2<br>0</p>","solutions":[{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź</h4>\n<p>| Zbiór A | p | S |<br>| 7, 5, 11, 33 | 3 | 77 |<br>| 15, 12, 10, 6, 5, 1 | 5 | <strong>72</strong> (12·6) |<br>| 6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18 | 7 | <strong>216</strong> (18·12) |<br>| 4, 34, 16, 8, 6, 22, 14, 12, 2, 7 | 2 | <strong>0</strong> |</p>\n<h4>Sposób 1 - kluczowa obserwacja matematyczna</h4>\n<p>Iloczyn a·b nie jest podzielny przez liczbę pierwszą p <strong>wtedy i tylko wtedy, gdy ani a, ani b nie jest podzielne przez p</strong> (własność liczb pierwszych: jeśli p|a·b to p|a lub p|b).</p>\n<p><strong>Strategia:</strong> Odfiltruj ze zbioru A wszystkie liczby podzielne przez p. Z pozostałych weź <strong>dwie największe różne</strong> liczby - ich iloczyn da maksimum.</p>\n<h4>Sposób 2 - analiza każdego wiersza</h4>\n<h5>Wiersz 1: A = {7, 5, 11, 33}, p = 3</h5>\n<p>Liczby niepodzielne przez 3: 7, 5, 11 (33 = 3·11 - odpada).<br>Największe dwie różne: 11 i 7 → <strong>S = 11 · 7 = 77</strong> ✓ (zgadza się z przykładem w arkuszu)</p>\n<h5>Wiersz 2: A = {15, 12, 10, 6, 5, 1}, p = 5</h5>\n<p>Liczby niepodzielne przez 5: 12, 6, 1 (15, 10, 5 podzielne - odpadają).<br>Największe dwie różne: 12 i 6 → <strong>S = 12 · 6 = 72</strong></p>\n<h5>Wiersz 3: A = {6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18}, p = 7</h5>\n<p>Liczby niepodzielne przez 7: 6, 12, 10, 5, 9, 4, 8, 18 (28, 7, 14 odpadają jako wielokrotności 7).<br>Największe dwie różne: 18 i 12 → <strong>S = 18 · 12 = 216</strong></p>\n<h5>Wiersz 4: A = {4, 34, 16, 8, 6, 22, 14, 12, 2, 7}, p = 2</h5>\n<p>Liczby niepodzielne przez 2 (czyli nieparzyste): tylko <strong>7</strong>.<br>Mamy tylko 1 liczbę nieparzystą - nie można zbudować prostokąta o dwóch RÓŻNYCH bokach.<br><strong>S = 0</strong></p>\n<h4>Sposób 3 - weryfikacja kodem (Python)</h4>\n<p>```python<br>def pole_max(A, p):<br>filtr = [x for x in A if x % p != 0]<br>if len(filtr) &lt; 2:<br>return 0<br>filtr.sort(reverse=True)<br>return filtr[0] * filtr[1]</p>\n<p>print(pole_max([7, 5, 11, 33], 3)) # 77<br>print(pole_max([15, 12, 10, 6, 5, 1], 5)) # 72<br>print(pole_max([6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18], 7)) # 216<br>print(pole_max([4, 34, 16, 8, 6, 22, 14, 12, 2, 7], 2)) # 0</p>\n<h4>Reference informatyczny - własności liczb pierwszych</h4>\n<blockquote>Reference - liczby pierwsze:<br>- Liczba pierwsza p dzieli iloczyn a·b ⟺ p|a lub p|b (kluczowa własność, podstawa rozkładu na czynniki).<br>- Sprawdzenie podzielności: <code>a mod p == 0</code> w pseudokodzie / <code>a % p == 0</code> w Python/C++.<br>- Dla maksymalizacji iloczynu dwóch różnych elementów z listy bierzemy dwie największe (sortowanie malejące → wybierz [0] i [1]).</blockquote>\n<h4>Schemat oceniania CKE</h4>\n<blockquote>Klucz CKE (zadanie 1.1, max 2 pkt):<br>- <strong>2 pkt</strong> - za prawidłową odpowiedź w trzech wierszach (72, 216, 0)<br>- <strong>1 pkt</strong> - za prawidłową odpowiedź w dwóch wierszach<br>- <strong>0 pkt</strong> - za jedną poprawną odpowiedź albo brak</blockquote>\n<h4>Typowe pułapki</h4>\n<ul><li><strong>Zapomnienie warunku „boki różne&quot;</strong>: w wierszu 1 nie można wziąć 33·33, choć 33² byłoby większe - boki muszą być różne. Ale 33 i tak odpada (podzielne przez 3).</li><li><strong>Wiersz 4 jest pułapką</strong>: tylko jedna liczba nieparzysta (7), więc S = 0. Łatwo przeoczyć - np. ktoś bierze 7·jakaś_parzysta, ale wtedy iloczyn jest parzysty (czyli podzielny przez 2).</li><li><strong>Pomylenie p z dowolną liczbą</strong> - p musi być liczbą pierwszą, dlatego stosujemy własność (jeśli p|a·b to p|a lub p|b). Dla liczb złożonych to nie działa (np. 6|2·3, ale 6∤2 i 6∤3).</li></ul>\n<h4>Złożoność obliczeniowa</h4>\n<p>Przefiltrowanie + znalezienie 2 największych: <strong>O(n)</strong> dla każdego wiersza tabeli.</p>"}]}