Kurs Podstaw Pythona

Sciezka dla poczatkujacych: uporzadkowane notatki, praktyczne przyklady i zadania w stylu LeetCode.

NOTES

Notatki

01. Podstawy

  1. Instalacja w systemie Windows
  2. Interaktywna konsola
  3. Zmienne
  4. Warunki
  5. Petle
  6. Funkcje
  7. Napisy
  8. Struktury danych
  9. Enum
  10. Liczby losowe

02. Sredniozaawansowane

  1. Klasy i obiekty
  2. Referencje i kopiowanie
  3. Czyste funkcje i skutki uboczne
  4. Dziedziczenie i kompozycja
  5. Wyrazenia regularne
  6. Wyjatki
  7. Watki
  8. Procesy
  9. Asyncio
  10. Lambdy
  11. Programowanie funkcyjne
  12. Klasy danych
  13. Generatory
  14. Iteratory
  15. Dekoratory
  16. Serializacja

03. Inzynieria oprogramowania

  1. Moduly i pakiety
  2. Wersje Pythona
  3. Pip i Pypi
  4. Srodowisko wirtualne
  5. Dbanie o jakosc kodu
  6. Debugowanie
  7. Testy jednostkowe
  8. Dokumentacja
  9. Pliki wykonywalne i PyInstaller
  10. Kod bajtowy

04. Python w praktyce

  1. Argumenty linii polecen
  2. Praca z plikami i folderami
  3. Pandas i CSV
  4. Praca z plikami PDF
  5. Informacje o systemie operacyjnym
  6. HTTP i prosty serwer
  7. API wraz z FastAPI
  8. Bazy danych z SQLite
  9. Tkinter
  10. Logi

05. Prezentacje

  1. Wprowadzenie do kursu
  2. Programowanie wstep
  3. Paradygmaty programowania
  4. Jupyter notebooks
  5. Inspekcja kodu
  6. Git
  7. Testy
TASKS

Zadania

Rozdział 1: Interakcja z konsolą (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każda w oddzielnej linii” — po każdym wyniku wypisz znak nowej linii.
  • Dla liczb zmiennoprzecinkowych stosuj formatowanie zgodne z poleceniem (np. %.3f, format(x, ".3f")).

Wypisywanie tekstu na ekran

Napisz program, który wypisze dokładnie:

Trudnosc: ★☆☆

Zamiana kolejności liczb

Wczytaj dwie liczby całkowite i wypisz je w odwrotnej kolejności (każda w osobnej linii).

Trudnosc: ★☆☆

Rysowanie kształtów znakami

Wypisz na wyjście trzy kształty:

Trudnosc: ★☆☆

Podstawowe operacje arytmetyczne

Wczytaj dwie liczby naturalne a i b i wypisz kolejno:

Trudnosc: ★☆☆

Funkcja liniowa: y = 3x + 10

Trudnosc: ★★☆

Funkcja liniowa: y = ax + b

Trudnosc: ★★☆

Funkcja sześcienna: y = x³ + 2

Oblicz: y = x^3 + 22 - 20, czyli równoważnie y = x^3 + 2.

Trudnosc: ★★☆

Wielomian z potęgami: y = a·x^m + b·x^n + c − a

Trudnosc: ★★☆

Funkcja z trygonometrią, wykładniczą i logarytmem

Dla x (w radianach) oblicz:

Trudnosc: ★★★☆

Kilogramy → gramy

Wczytaj wartość w kilogramach kg i przelicz na gramy.

Trudnosc: ★☆☆

Cale → centymetry

Wczytaj liczbę cali inch i przelicz na centymetry.

Trudnosc: ★☆☆

Sekundy → pełne godziny

Wczytaj liczbę sekund s i wypisz liczbę pełnych godzin.

Trudnosc: ★☆☆

Euro → złotówki (kurs stały)

Wczytaj kwotę w euro eur i przelicz na złotówki przy stałym kursie.

Trudnosc: ★☆☆

Stopnie → radiany

Wczytaj kąt w stopniach deg i przelicz na radiany.

Trudnosc: ★☆☆

Fahrenheit → Celsius i Kelviny

Wczytaj temperaturę w stopniach Fahrenheita F. Oblicz temperaturę w Celsjuszach oraz Kelvinach.

Trudnosc: ★☆☆

Pole trójkąta

Oblicz pole trójkąta ze wzoru:

Trudnosc: ★☆☆

Pole prostokąta

Oblicz pole prostokąta:

Trudnosc: ★☆☆

Pole rombu

Oblicz pole rombu z przekątnych:

Trudnosc: ★☆☆

Objętość kuli

Oblicz objętość kuli:

Trudnosc: ★★☆

Objętość stożka

Oblicz objętość stożka:

Trudnosc: ★★☆

Objętość prostopadłościanu

Oblicz objętość prostopadłościanu:

Trudnosc: ★☆☆

Koszt pokrycia podłogi płytkami

Dane są:

Trudnosc: ★★☆

Kalkulator kredytowy (rata annuitetowa)

Wczytaj:

Trudnosc: ★★☆

Rozdział: Daty (warunki + kalendarz)

Zadania w tym rozdziale dotyczą walidacji i obliczeń na datach w kalendarzu gregoriańskim.
Konwencje wspólne:

  • Każde zadanie to osobny program.
  • Liczby wczytuj z osobnych linii, w kolejności z opisu.
  • Komunikaty wypisuj dokładnie jak w treści (kropki, polskie znaki, spacje).
  • Jeśli zadanie mówi „nie wypisuj nic” — program kończy się bez żadnego wyjścia.

Rozdział: Pętle i proste obliczenia (while / for)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każda w oddzielnej linii” — po każdym wyniku wypisz znak nowej linii.
  • Dla liczb zmiennoprzecinkowych stosuj formatowanie zgodne z poleceniem (np. %.3f, format(x, ".3f")).
  • Jeśli zadanie mówi „brak danych wyjściowych” — program nie wypisuje nic (nawet pustej linii).

Rozdział: Cyfry w liczbie (dzielenie przez 10, modulo)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każda w oddzielnej linii” — po każdym wyniku wypisz znak nowej linii.
  • Dla liczb zmiennoprzecinkowych stosuj formatowanie zgodne z poleceniem.
  • Jeżeli zadanie wymaga „brak danych wyjściowych”, program nie wypisuje nic (nawet pustej linii).

Liczenie cyfr w liczbie

Wczytaj liczbę naturalną n i wypisz, z ilu cyfr składa się jej zapis dziesiętny.

Trudnosc: ★☆☆

Wypisywanie cyfr liczby w odwrotnej kolejności

Wczytaj liczbę naturalną n i wypisz jej cyfry w kolejności od cyfry jedności (czyli w odwrotnej kolejności niż w zapisie liczby). Każdą cyfrę wypisz w osobnej l

Trudnosc: ★☆☆

Sumowanie cyfr liczby

Wczytaj liczbę naturalną n i oblicz sumę jej cyfr. Następnie wypisz wynik.

Trudnosc: ★☆☆

Cyfry parzyste

Wczytaj liczbę naturalną n i wypisz wszystkie jej cyfry, które są parzyste. Każdą cyfrę wypisz w osobnej linii.

Trudnosc: ★☆☆

Cyfry mniejsze niż 5

Wczytaj liczbę naturalną n i wypisz wszystkie jej cyfry, które są mniejsze niż 5. Każdą cyfrę wypisz w osobnej linii.

Trudnosc: ★☆☆

Cyfry różne od zera

Wczytaj liczbę naturalną n i wypisz wszystkie jej cyfry, które są różne od zera. Każdą cyfrę wypisz w osobnej linii.

Trudnosc: ★☆☆

Sprawdzanie, czy liczba jest palindromem

Wczytaj liczbę naturalną n. Sprawdź, czy jest palindromem (czyli czy po odwróceniu cyfr pozostaje taka sama). Wypisz odpowiedni komunikat:

Trudnosc: ★★☆

Liczby mniejsze od n o sumie cyfr równej 10

Wczytaj liczbę naturalną n. Wypisz wszystkie liczby naturalne x takie, że 0 ≤ x < n oraz suma cyfr liczby x wynosi 10. Każdą liczbę wypisz w osobnej linii.

Trudnosc: ★★☆

Dwucyfrowe większe od n

Wczytaj liczbę naturalną n. Wypisz wszystkie liczby dwucyfrowe większe od n (czyli z zakresu 10–99), każdą w osobnej linii.

Trudnosc: ★★☆

Trzycyfrowe o sumie cyfr równej n

Wczytaj liczbę naturalną n. Wypisz wszystkie liczby trzycyfrowe x (100–999), których suma cyfr jest równa n. Każdą liczbę wypisz w osobnej linii.

Trudnosc: ★★☆

Trzycyfrowe podzielne przez sumę cyfr liczby n

Wczytaj liczbę naturalną n. Oblicz sumę cyfr liczby n i oznacz ją jako s. Następnie wypisz wszystkie liczby trzycyfrowe x (100–999), które są podzielne przez s.

Trudnosc: ★★☆

Mniejsze od n złożone wyłącznie z parzystych cyfr

Wczytaj liczbę naturalną n. Wypisz wszystkie liczby naturalne x takie, że 0 ≤ x < n oraz każda cyfra w zapisie dziesiętnym x jest parzysta. Każdą liczbę wypisz

Trudnosc: ★★☆

Rozdział: Funkcje — Wprowadzenie

Poniższe zadania dotyczą pisania funkcji.
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem / ćwiczeniem funkcji.
Konwencje wspólne:

  • Jeśli zadanie mówi „funkcja zwraca” — chodzi o użycie instrukcji return.
  • Jeśli zadanie zawiera kilka podpunktów (a, b, c…) — każdy podpunkt to osobna funkcja.
  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każda w oddzielnej linii” — po każdym wyniku wypisz znak nowej linii.

Zwracanie stałej wartości: liczba 3

Napisz funkcję (bez argumentów), która zwraca liczbę całkowitą 3.

Trudnosc: ★☆☆

Zwracanie stałej wartości: napis „Tak”

Napisz funkcję (bez argumentów), która zwraca napis Tak.

Trudnosc: ★☆☆

Zwracanie stałej wartości: True

Napisz funkcję (bez argumentów), która zwraca wartość logiczną True.

Trudnosc: ★☆☆

Suma dwóch liczb

Napisz funkcję suma(a, b), która zwraca sumę dwóch liczb całkowitych.

Trudnosc: ★☆☆

Różnica: b − a

Napisz funkcję roznica(a, b), która zwraca różnicę: b - a.

Trudnosc: ★☆☆

Iloczyn dwóch liczb

Napisz funkcję iloczyn(a, b), która zwraca iloczyn a * b.

Trudnosc: ★☆☆

Iloraz całkowity: a // b

Napisz funkcję iloraz(a, b), która zwraca iloraz całkowity a // b.

Trudnosc: ★☆☆

Reszta z dzielenia: a % b

Napisz funkcję reszta(a, b), która zwraca resztę z dzielenia a % b.

Trudnosc: ★☆☆

Sprawdzanie warunków logicznych

Napisz funkcję sprawdz_warunki(a, b), która dla dwóch liczb naturalnych zwraca cztery wartości logiczne (np. jako krotkę) odpowiadające warunkom:

Trudnosc: ★☆☆

Minimum z dwóch liczb

Napisz funkcję min_z_dwoch(a, b), która zwraca mniejszą z dwóch liczb naturalnych.

Trudnosc: ★☆☆

Maksimum z dwóch liczb

Napisz funkcję max_z_dwoch(a, b), która zwraca większą z dwóch liczb naturalnych.

Trudnosc: ★☆☆

Minimum z trzech liczb

Napisz funkcję min_z_trzech(a, b, c), która zwraca najmniejszą z trzech liczb naturalnych.

Trudnosc: ★☆☆

Maksimum z trzech liczb

Napisz funkcję max_z_trzech(a, b, c), która zwraca największą z trzech liczb naturalnych.

Trudnosc: ★☆☆

Zamiana wartości miejscami

Napisz funkcję zamien_wartosci(a, b), która zamienia wartości miejscami i zwraca je jako parę (b, a).

Trudnosc: ★☆☆

Suma cyfr liczby (funkcja)

Napisz funkcję suma_cyfr(n), która zwraca sumę cyfr liczby naturalnej n.

Trudnosc: ★☆☆

Weryfikacja nazwy użytkownika i hasła

Napisz dwie funkcje:

Trudnosc: ★★☆

Iloraz w dół bez / i %

Napisz funkcję zaokraglij_w_dol(a, b), która zwraca wartość a // b, ale nie używa operatorów / ani %.

Trudnosc: ★★☆

Rozdział: Pętla — Algorytmy Matematyczne

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem / ćwiczeniem funkcji.
Konwencje wspólne:

  • Jeśli zadanie mówi „napisz funkcję” — implementujesz funkcję o podanej nazwie i zwracasz wynik przez return.
  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każda w oddzielnej linii” — po każdym wyniku wypisz znak nowej linii.
  • Dla liczb zmiennoprzecinkowych stosuj formatowanie zgodne z poleceniem.

Rozdział: Pętla — Pętle zagnieżdżone

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każdy wiersz w osobnej linii” — po każdym wierszu wypisz znak nowej linii.
  • W zadaniach z rysowaniem znakami spacje są istotne (nie przycinaj końcowych spacji — najlepiej ich nie drukować, ale w środku linii muszą być).
  • Nie wypisuj promptów typu „Podaj n”.

Rozdział: Listy — Wprowadzenie

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „elementy oddzielone przecinkami” — użyj przecinka bez spacji.
  • Jeśli w danych wyjściowych jest „oddzielone spacją” — użyj pojedynczej spacji.
  • Nie wypisuj promptów typu „Podaj N”.

Wczytaj i wypisz

Wczytaj N, następnie N liczb całkowitych do listy.

Trudnosc: ★☆☆

Wczytaj, zmodyfikuj i wypisz

Wczytaj N oraz N liczb całkowitych do listy. Następnie:

Trudnosc: ★☆☆

Pierwsze wystąpienie klucza

Wczytaj listę liczb całkowitych oraz liczbę klucz. Wypisz indeks pierwszego wystąpienia klucz w liście.

Trudnosc: ★☆☆

Minimum oraz maksimum

Wczytaj N liczb całkowitych. Wypisz:

Trudnosc: ★☆☆

Zmodyfikuj elementy spełniające warunek

Wczytaj listę liczb całkowitych. Dla każdego podpunktu utwórz nową listę na podstawie listy z poprzedniego podpunktu i wypisz ją w jednej linii (przecinki bez s

Trudnosc: ★☆☆

Czy średnia elementów znajduje się w liście?

Wczytaj listę liczb całkowitych. Oblicz średnią arytmetyczną elementów i sprawdź, czy ta średnia jest dokładnie jednym z elementów listy.

Trudnosc: ★☆☆

Średnia dwóch największych liczb

Wczytaj N liczb naturalnych (N ≥ 2). Znajdź największą i drugą największą wartość, a następnie wypisz ich średnią arytmetyczną jako liczbę zmiennoprzecinkową z

Trudnosc: ★☆☆

Usuń klucz

Wczytaj listę liczb całkowitych oraz klucz. Usuń pierwsze wystąpienie klucz (jeśli istnieje). Następnie wypisz listę po modyfikacji w jednej linii, elementy odd

Trudnosc: ★☆☆

Usuń duplikaty (z zachowaniem kolejności)

Wczytaj listę liczb naturalnych i usuń duplikaty tak, aby każda liczba występowała tylko raz — zachowując kolejność pierwszego wystąpienia.

Trudnosc: ★☆☆

Czy punkty mogą być wierzchołkami trójkąta?

Wczytaj współrzędne trzech punktów A(xA, yA), B(xB, yB), C(xC, yC).

Trudnosc: ★★☆

Samochody jadące w przeciwnych kierunkach

Wczytaj N oraz napis długości N złożony z liter A i B:

Trudnosc: ★★☆

Rotacja w lewo / prawo

Wczytaj listę liczb całkowitych, a następnie:

Trudnosc: ★★☆

Brakujący element w ciągu arytmetycznym

Wczytaj N liczb naturalnych. Lista jest fragmentem ciągu arytmetycznego z jednym brakującym elementem. Znajdź i wypisz brakującą wartość.

Trudnosc: ★★☆

Element bez pary

Wczytaj listę liczb całkowitych o nieparzystej długości: wszystkie liczby poza jedną występują dokładnie dwa razy. Znajdź liczbę bez pary.

Trudnosc: ★★☆

Element dominujący

Wczytaj listę liczb naturalnych. Jeśli istnieje liczba, która występuje więcej niż N/2 razy, wypisz ją. W przeciwnym razie wypisz -1.

Trudnosc: ★★☆

Indeksy pierwszej pary o sumie x

Wczytaj listę liczb całkowitych oraz liczbę x. Znajdź indeksy pierwszej pary (i, j) (z i < j) takiej, że lista[i] + lista[j]==x.

Trudnosc: ★★☆

Wszystkie pary o sumie x (wartości)

Wczytaj listę liczb całkowitych oraz x. Wypisz wszystkie pary wartości (a, b) z listy (nie indeksy), takie że a + b == x. Każdą parę wypisz w osobnej linii jako

Trudnosc: ★★☆

Indeks najmniejszego elementu w przesuniętej liście

Wczytaj listę liczb całkowitych, która była posortowana rosnąco i została przesunięta w prawo o nieznaną liczbę miejsc. Znajdź indeks najmniejszego elementu.

Trudnosc: ★★☆

Rozdział: Listy — Dwie listy (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Listy w wejściu są podane w jednej linii w zapisie z nawiasami kwadratowymi, np. [5, 3, 7, 2].
  • Jeśli w danych są dwie listy — wczytaj je w kolejnych liniach: najpierw lista 1, potem lista 2.
  • Gdy wynikiem jest lista — wypisz ją w formacie jak w przykładach, np. [1, 2, 3].
  • Jeśli wynik ma być w jednej linii z elementami oddzielonymi przecinkami bez spacji, trzymaj się dokładnie tego formatu.

Rozdział: Napisy — operacje podstawowe (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Wczytuj dane dokładnie w kolejności podanej w sekcji Wejście.
  • Jeśli w danych jest „jeden napis” — wczytaj całą linię (może zawierać spacje).
  • Jeśli w wyjściu ma być lista w stylu ["Ala", "ma"] albo ['o', 'ń'], wypisz ją dokładnie w tej postaci.

Odwróć napis

Wczytaj napis i wypisz go od tyłu.

Trudnosc: ★☆☆

Policz wystąpienia znaku

Wczytaj napis oraz jeden znak. Wypisz, ile razy ten znak występuje w napisie.

Trudnosc: ★☆☆

Z ilu słów składa się zdanie?

Wczytaj zdanie i policz, z ilu słów się składa. Znaki interpunkcyjne nie są słowami.

Trudnosc: ★☆☆

Zamień wszystkie małe litery na duże

Wczytaj napis i zamień wszystkie litery na wielkie.

Trudnosc: ★☆☆

Co k-ty znak poziomo i pionowo

Wczytaj napis i liczbę k.

Trudnosc: ★☆☆

Zamień litery „a” na „?”

Wczytaj napis i zamień wszystkie wystąpienia litery a na znak ?.

Trudnosc: ★☆☆

Zamień znaki na kody ASCII

Wczytaj napis i wypisz kody ASCII wszystkich jego znaków, oddzielone przecinkiem i spacją ", ".

Trudnosc: ★☆☆

Wypisz pionowo słowa ze zdania

Wczytaj zdanie, podziel na słowa i wypisz każde słowo w osobnej linii. Interpunkcja nie jest słowem.

Trudnosc: ★☆☆

Rozdziel informacje o pracowniku

Wczytaj linię z danymi pracownika rozdzielonymi średnikami ;:

Trudnosc: ★☆☆

Najdłuższe i najkrótsze słowo

Wczytaj zdanie i znajdź:

Trudnosc: ★☆☆

Średnia długość słów

Wczytaj zdanie i oblicz średnią długość słów. Wynik ma być liczbą całkowitą.

Trudnosc: ★☆☆

Usuń spacje ze zdania

Wczytaj zdanie i usuń z niego wszystkie spacje.

Trudnosc: ★☆☆

Znaki na indeksach będących liczbami pierwszymi

Wczytaj napis. Zbierz znaki, których indeksy (od 0) są liczbami pierwszymi (2, 3, 5, 7, ...). Wypisz wynik jako listę w stylu Pythona.

Trudnosc: ★☆☆

Napis z liczb od 1 do n

Wczytaj n i wypisz napis złożony z kolejnych liczb od 1 do n, bez separatorów.

Trudnosc: ★☆☆

Słowa jako lista

Wczytaj zdanie i wypisz listę słów w formacie ["Ala", "ma", "kota"].

Trudnosc: ★☆☆

Odległość Hamminga

Wczytaj dwa napisy tej samej długości i policz, na ilu pozycjach różnią się znakami.

Trudnosc: ★★☆

Konwersja listy na napis

Otrzymujesz listę liczb naturalnych w zapisie tekstowym (np. [2, 4, 7]). Połącz liczby bez separatorów i wypisz jako napis.

Trudnosc: ★☆☆

Odwróć słowa w zdaniu

Wczytaj zdanie i odwróć litery w każdym słowie osobno, zachowując kolejność słów.

Trudnosc: ★★☆

Rozdział: Napisy — palindromy, anagramy, permutacje (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Napis wczytuj jako całą linię (może zawierać spacje tylko tam, gdzie jest to powiedziane).
  • Jeśli w wyjściu jest „każde słowo w osobnej linii” — wypisuj dokładnie po jednej pozycji na linię.
  • W zadaniach „ignoruj wielkość liter” — porównuj w wersji np. lower(), ale wypisuj słowa w oryginalnej postaci z wejścia, chyba że treść mówi inaczej.
  • Jeśli wynikiem ma być „lista” i nic nie znaleziono — nie wypisuj nic (puste wyjście), o ile nie ma wprost formatu [].

Rozdział: Macierze i przedziały (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w wierszu macierzy są liczby oddzielone spacjami — wczytaj cały wiersz i rozbij go po spacjach.
  • W wyjściu macierzy: każdy wiersz w osobnej linii, elementy oddzielone pojedynczą spacją.

Macierz z identycznymi wierszami 0..b

Wczytaj a i b. Wypisz macierz składającą się z a identycznych wierszy, gdzie każdy wiersz to liczby od 0 do b włącznie.

Trudnosc: ★☆☆

Macierz n×n: iloczyn indeksów

Wczytaj n. Utwórz i wypisz macierz n×n, gdzie element [i][j] (indeksy od 0) ma wartość i*j.

Trudnosc: ★☆☆

Macierz 2-kolumnowa z dwóch list

Wczytaj dwie listy. Jeśli mają tę samą długość, wypisz macierz 2-kolumnową: wiersz i to (lista1[i], lista2[i]).

Trudnosc: ★☆☆

Dodawanie i odejmowanie macierzy

Wczytaj dwie macierze n×m.

Trudnosc: ★☆☆

Czy macierz jest magiczna?

Wczytaj macierz kwadratową n×n z dodatnimi liczbami naturalnymi. Sprawdź, czy to kwadrat magiczny: suma każdego wiersza, każdej kolumny oraz obu przekątnych jes

Trudnosc: ★★☆

Scalanie przedziałów

Wczytaj n przedziałów [a_i, b_i] (a_i ≤ b_i). Scal przedziały nachodzące na siebie i wypisz wynik w kolejności rosnącej po początku.

Trudnosc: ★★☆

Zerowanie macierzy

Wczytaj macierz n×m. Jeśli w macierzy występuje 0, to cały wiersz i cała kolumna tego zera mają zostać ustawione na 0 (dla wszystkich zer naraz).

Trudnosc: ★★☆

Wypisanie elementów macierzy spiralnie

Wczytaj macierz n×m i wypisz jej elementy spiralnie (zgodnie z ruchem wskazówek zegara), startując z lewego górnego rogu.

Trudnosc: ★★☆

Klepsydra o największej sumie

Wczytaj macierz n×m (n,m ≥ 3). Znajdź maksymalną sumę „klepsydry” (7 pól):

Trudnosc: ★★☆

Obróć macierz o 90° w prawo

Wczytaj kwadratową macierz n×n i wypisz ją po obrocie o 90° zgodnie z ruchem wskazówek zegara.

Trudnosc: ★★☆

Gra w statki (projekt konsolowy)

Zaimplementuj grę w statki na planszy 10×10:

Trudnosc: ★★★

Rozdział: Funkcje — wielomiany

Poniższe zadania dotyczą implementacji funkcji operujących na wielomianach zapisanych jako lista współczynników w kolejności od najwyższej potęgi do wyrazu wolnego:
[a_n, a_{n-1}, ..., a_0] oznacza wielomian a_n x^n + a_{n-1} x^{n-1} + ... + a_0.
Konwencje wspólne:

  • Każdy podpunkt to osobna funkcja (możesz też robić osobne programy testujące – ale zadanie dotyczy funkcji).
  • Współczynniki mogą być ujemne (czyli w praktyce: liczby całkowite).
  • Dla wyniku jako listy: zwracaj listę współczynników w tym samym formacie (od najwyższej potęgi).
  • Jeśli wynikowy wielomian ma wiodące zera, można je usuwać, ale zostaw przynajmniej jedno zero, jeśli cały wielomian jest zerowy (np. [0]).

Rozdział: Funkcje — wielomiany (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Wielomian jest podany jako lista współczynników w kolejności: [a_n, a_{n-1}, ..., a_0].
  • Liczby całkowite mogą być ujemne.
  • Jeśli w wyjściu jest „lista” — wypisz współczynniki w jednej linii, oddzielone pojedynczą spacją.

*Wyjątek:* jeśli lista ma być pusta, wypisz dokładnie: [].

  • Nie wypisuj żadnych dodatkowych opisów ani nawiasów (poza [] dla pustej listy).

Rozdział: Bity i systemy liczbowe

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli zadanie mówi „nie wypisuj nic” — nie drukuj nawet pustej linii.
  • Reprezentacje binarne wypisuj jako ciąg znaków 0 i 1 bez spacji.
  • Dla systemów o podstawie > 10 używaj cyfr 0–9 oraz liter A–Z (wielkie).
  • Nie wypisuj promptów typu „Podaj liczbę”.

Dziesiętny → binarny

Wczytaj liczbę naturalną w systemie dziesiętnym i wypisz jej reprezentację binarną.

Trudnosc: ★☆☆

Binarny → dziesiętny

Wczytaj liczbę naturalną w systemie binarnym (ciąg 0/1) i wypisz jej wartość w systemie dziesiętnym.

Trudnosc: ★☆☆

Wypisz binarnie tylko gdy liczba parzysta

Wczytaj liczbę naturalną n. Jeśli n jest parzysta — wypisz jej zapis binarny. W przeciwnym razie nie wypisuj nic.

Trudnosc: ★☆☆

Wypisz binarnie tylko gdy liczba pierwsza

Wczytaj liczbę naturalną n. Jeśli n jest liczbą pierwszą — wypisz jej zapis binarny. W przeciwnym razie nie wypisuj nic.

Trudnosc: ★☆☆

Dodawanie bitowe

Wczytaj dwie liczby naturalne a i b. Oblicz a + b używając wyłącznie operatorów bitowych (i przesunięć).

Trudnosc: ★☆☆

Odejmowanie bitowe

Wczytaj a i b. Oblicz a - b używając wyłącznie operatorów bitowych.

Trudnosc: ★☆☆

Mnożenie bitowe

Wczytaj a i b. Oblicz a * b używając wyłącznie operatorów bitowych (np. metoda „shift-and-add”).

Trudnosc: ★☆☆

Dzielenie całkowite bitowe

Wczytaj a i b. Oblicz a // b używając wyłącznie operatorów bitowych.

Trudnosc: ★☆☆

Liczba zer w zapisie binarnym

Wczytaj liczbę naturalną n. Policz, ile znaków 0 zawiera jej binarna reprezentacja (bez wiodących zer).

Trudnosc: ★☆☆

Liczba jedynek w zapisie binarnym

Wczytaj n. Policz, ile bitów 1 ma liczba w zapisie binarnym.

Trudnosc: ★☆☆

Minimum bez instrukcji warunkowych

Wczytaj dwie liczby naturalne a i b. Wypisz mniejszą z nich bez użycia instrukcji warunkowych (if, ?:) i bez bibliotek.

Trudnosc: ★★☆

Maksimum bez instrukcji warunkowych

Wczytaj a i b. Wypisz większą z nich bez użycia instrukcji warunkowych i bez bibliotek.

Trudnosc: ★★☆

Konwersja między dowolnymi systemami (2..36)

Wczytaj:

Trudnosc: ★★☆

Zamiana sąsiadujących bitów

Wczytaj liczbę naturalną n. Zamień miejscami każdą parę sąsiadujących bitów w jej zapisie binarnym:

Trudnosc: ★☆☆

Najbliższa potęga dwójki (>= n)

Wczytaj liczbę naturalną n. Wypisz najmniejszą potęgę liczby 2, która jest większa lub równa n.

Trudnosc: ★☆☆

Wielkie → małe (bitowo)

Wczytaj napis z liter alfabetu łacińskiego. Zamień wszystkie wielkie litery na małe, używając operacji bitowych na kodach ASCII.

Trudnosc: ★★☆

Małe → wielkie (bitowo)

Wczytaj napis. Zamień wszystkie małe litery na wielkie, używając operacji bitowych na ASCII.

Trudnosc: ★★☆

Odwróć wielkość liter (bitowo)

Wczytaj napis. Zamień wielkość każdej litery na przeciwną (mała↔wielka) używając operacji bitowych na ASCII.

Trudnosc: ★★☆

Ile bitów trzeba odwrócić (A → B)

Wczytaj dwie liczby naturalne A i B. Oblicz, ile bitów trzeba odwrócić w A, aby otrzymać B.

Trudnosc: ★★☆

Palindrom w systemie binarnym

Wczytaj liczbę naturalną n. Sprawdź, czy jej reprezentacja binarna (bez wiodących zer) jest palindromem.

Trudnosc: ★★☆

Najdłuższy ciąg zer otoczony jedynkami

Wczytaj liczbę naturalną n. W jej reprezentacji binarnej znajdź długość najdłuższego ciągu kolejnych zer, który jest z obu stron otoczony jedynkami (tzw. *binar

Trudnosc: ★★★

Rozdział: Słowniki (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych liczby/napisy są w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wejściowych w jednej linii jest kilka wartości — rozbij linię po spacjach.
  • Wypisuj wynik dokładnie w formacie z treści (np. słownik w postaci {...}, listy jak [...]).

Słownik: liczby i ich kwadraty

Wczytaj liczbę n. Utwórz słownik, gdzie klucze to liczby od 1 do n-1, a wartości to ich kwadraty.

Trudnosc: ★☆☆

Słownik z dwóch list (klucze i wartości)

Wczytaj dwie listy. Jeśli mają tę samą długość, utwórz słownik: klucz z pierwszej listy → wartość z drugiej listy.

Trudnosc: ★☆☆

Biblioteka: baza wypożyczeń

Utrzymuj słownik: imię -> lista wypożyczonych książek.

Trudnosc: ★☆☆

Usuń pary ze słownika na podstawie wartości

Wczytaj słownik (n par: klucz-napis, wartość-liczba) oraz liczbę k. Usuń wszystkie pary, gdzie wartość == k. Wypisz wynikowy słownik.

Trudnosc: ★☆☆

Pracownik z największym sumarycznym zyskiem

Wczytaj n wpisów: pracownik zysk. Zsumuj zyski per pracownik i wypisz nazwę pracownika z największą sumą.

Trudnosc: ★☆☆

Histogram znaków w słowie

Wczytaj napis. Zwróć słownik: znak → liczba wystąpień.

Trudnosc: ★☆☆

Histogram słów w tekście (ignoruj wielkość liter)

Wczytaj tekst. Policz częstość występowania słów (tylko litery), ignorując wielkość liter. Wypisz słownik: słowo (małe litery) → liczba wystąpień.

Trudnosc: ★☆☆

Najczęstsza litera w zdaniu

Wczytaj zdanie. Zignoruj spacje i znaki interpunkcyjne. Znajdź literę występującą najczęściej.

Trudnosc: ★☆☆

Znaki występujące co najmniej dwa razy

Wczytaj napis. Wypisz napis złożony z unikalnych znaków, które występują co najmniej 2 razy, w kolejności pierwszego pojawienia się w wejściu.

Trudnosc: ★☆☆

Znalezienie anagramów w tekście (grupy)

Wczytaj tekst. Znajdź grupy słów będących anagramami (ignoruj wielkość liter, słowa to tylko litery).

Trudnosc: ★★☆

Sortowanie „słownika” po kluczach i po wartościach

Wczytaj n par klucz wartość.

Trudnosc: ★☆☆

Porównanie dwóch słowników z listami (kolejność list bez znaczenia)

Wczytaj dwa „słowniki” (opis w wejściu). Dla każdego klucza wartościami są listy liczb całkowitych, ale kolejność w listach nie ma znaczenia.

Trudnosc: ★★☆

Rozdział: Klasy (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli format wyjścia zawiera kilka linii — wypisz je w tej samej kolejności.
  • Dla liczb zmiennoprzecinkowych trzymaj stałą liczbę miejsc po przecinku (jak w przykładach).

Rozdział: Dziedziczenie (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w zadaniu jest „brak wejścia” — program nic nie wczytuje.
  • Jeśli zadanie wymaga wypisania kilku linii — wypisz je w tej samej kolejności, co w przykładzie.
  • Dla liczb zmiennoprzecinkowych trzymaj stałą liczbę miejsc po przecinku, jeśli jest pokazana w przykładzie.

Rozdział: Operacje na plikach (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Ścieżki wczytuj jako całe linie (mogą zawierać spacje).
  • Rozszerzenia podawane są z kropką, np. .txt.
  • Jeśli zadanie wymaga wypisania listy lub słownika — wypisz je w formacie jak w przykładach (np. ['a', 'b'], { 'a': 1 }).
  • W zadaniach „modyfikujących pliki” w wyjściu może nie być nic — liczy się wykonana operacja (jeśli środowisko testujące to sprawdza).

Czy ścieżka istnieje?

Otrzymujesz ścieżkę w systemie plików. Sprawdź, czy odnosi się do istniejącego pliku lub folderu.

Trudnosc: ★☆☆

Pliki o danym rozszerzeniu w folderze (bez podfolderów)

Otrzymujesz ścieżkę do folderu i rozszerzenie (np. .txt). Znajdź wszystkie pliki o tym rozszerzeniu znajdujące się bezpośrednio w tym folderze (bez przeszukiwan

Trudnosc: ★★☆

Znajdź wszystkie ścieżki plików o danej nazwie (rekurencyjnie)

Otrzymujesz nazwę pliku (np. raport.docx). Przeszukaj cały system plików i znajdź wszystkie pliki o tej nazwie. Wypisz listę pełnych ścieżek do znalezionych pli

Trudnosc: ★★☆

Wczytaj i wypisz treść pliku

Otrzymujesz ścieżkę do pliku tekstowego. Wczytaj zawartość pliku i wypisz ją.

Trudnosc: ★☆☆

Posortuj adresy IP z pliku

Otrzymujesz ścieżkę do pliku tekstowego, w którym w każdej linii znajduje się jeden adres IP. Wczytaj wszystkie adresy, posortuj je alfabetycznie i wypisz jako

Trudnosc: ★☆☆

Statystyki pliku tekstowego

Otrzymujesz ścieżkę do pliku tekstowego. Oblicz:

Trudnosc: ★★☆

Dodaj wiersz na początku pliku

Otrzymujesz ścieżkę do pliku tekstowego i wiersz tekstu. Dodaj ten wiersz na początku pliku.

Trudnosc: ★☆☆

Modyfikacja plików spełniających warunek (rekurencyjnie)

Otrzymujesz ścieżkę do folderu. Wykonaj:

Trudnosc: ★★☆

Usuń pliki większe niż 10 kB (rekurencyjnie)

Otrzymujesz ścieżkę do folderu. Usuń wszystkie pliki o rozmiarze > 10240 bajtów w tym folderze i jego podfolderach.

Trudnosc: ★★☆

Skopiuj pliki PNG do innego folderu (bez podfolderów)

Otrzymujesz ścieżkę folderu źródłowego i docelowego. Skopiuj wszystkie pliki .png znajdujące się bezpośrednio w folderze źródłowym do folderu docelowego.

Trudnosc: ★☆☆

Zamień miejscami treści dwóch plików

Otrzymujesz ścieżki do dwóch plików. Zamień ich treści miejscami:

Trudnosc: ★★☆

Przenieś wszystkie pliki CSV do jednego folderu (rekurencyjnie)

Otrzymujesz ścieżkę folderu źródłowego i docelowego. Przenieś wszystkie pliki .csv z folderu źródłowego i wszystkich jego podfolderów do folderu docelowego.

Trudnosc: ★★☆

Rozdział: Sortowanie — Algorytmy (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • W każdej wersji zadania wczytaj jedną linię z listą w formacie jak w przykładzie, np. [6, 2, 1, 4, 27].
  • Wypisz wynik jako listę w tym samym formacie, np. [1, 2, 4, 6, 27].
  • Zakładamy, że wejście jest poprawne (lista liczb całkowitych w notacji Pythona).

Rozdział: Sortowanie — praktyka (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych jest napis — wczytaj go jako całą linię (łącznie ze spacjami).
  • Jeśli w danych wejściowych jest lista — w zadaniach poniżej lista jest podana jako:
  • najpierw N (liczba elementów),
  • potem N elementów (w jednej linii lub w wielu — zależnie od opisu w zadaniu).
  • Jeśli w wyjściu jest lista Pythonowa (np. ['a', 'b']) — wypisz ją dokładnie w takim formacie jak w przykładzie.
  • Nie dopisuj dodatkowych spacji ani pustych linii (chyba że przykład je zawiera).

Rozdział: Wyrażenia regularne (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli w danych wejściowych są liczby w osobnych liniach — wczytuj je dokładnie w tej kolejności.
  • Jeśli w danych wyjściowych jest „każda w oddzielnej linii” — po każdym wyniku wypisz znak nowej linii.
  • Dla wartości logicznych wypisuj dokładnie Prawda lub Fałsz.

Sprawdź poprawność adresu e-mail

Otrzymujesz napis reprezentujący adres e-mail. Sprawdź, czy jest poprawny zgodnie z regułami:

Trudnosc: ★★☆

Sprawdź poprawność hasła

Otrzymujesz napis reprezentujący hasło. Sprawdź, czy hasło spełnia wszystkie warunki:

Trudnosc: ★★☆

Sprawdź, czy napis składa się wyłącznie z cyfr

Otrzymujesz napis. Sprawdź, czy składa się wyłącznie z cyfr (0–9).

Trudnosc: ★☆☆

Sprawdź, czy słowo występuje w zdaniu jako osobne słowo

Otrzymujesz dwa napisy: zdanie oraz słowo. Sprawdź, czy słowo występuje w zdaniu jako samodzielne słowo (nie jako fragment innego słowa).

Trudnosc: ★☆☆

Wyodrębnij cyfry z tekstu

Otrzymujesz napis zawierający różne znaki. Wyodrębnij wszystkie cyfry i wypisz je jako jeden napis (z zachowaniem kolejności).

Trudnosc: ★☆☆

Wiersze kończące się określonym napisem

Otrzymujesz dwa napisy:

Trudnosc: ★☆☆

Podziel tekst względem znaków interpunkcyjnych

Otrzymujesz napis (jedno lub kilka zdań). Podziel tekst na fragmenty w miejscach występowania znaków interpunkcyjnych (np. , . ! ? ; :). Usuń spacje na początku

Trudnosc: ★☆☆

Cyfry w słowach

Otrzymujesz zdanie. Wyodrębnij wszystkie ciągi cyfr, które są częścią słów (czyli są bezpośrednio połączone z literami). Nie uwzględniaj cyfr oddzielonych od li

Trudnosc: ★★☆

Usuń fragment napisu od pierwszego wystąpienia słowa klucz

Otrzymujesz tekst (wiele zdań lub wierszy) oraz słowo klucz. Jeśli słowo klucz wystąpi w tekście, usuń całą część od pierwszego wystąpienia tego słowa do końca

Trudnosc: ★★☆

Podmień napisy z listy A na napisy z listy B

Otrzymujesz:

Trudnosc: ★★☆

Nazwa pliku bez rozszerzenia

Otrzymujesz napis reprezentujący pełną ścieżkę do pliku. Wyodrębnij nazwę pliku (bez katalogów) i usuń rozszerzenie (część po ostatniej kropce). Zwróć samą nazw

Trudnosc: ★★☆

Rozdział: Listy — zadania dodatkowe (stdin/stdout)

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli na wejściu jest „lista” — w testach będzie podana w jednej linii w formacie podobnym do Pythona, np. [1, 0, 1].
  • Wypisuj wyniki dokładnie w formacie wymaganym w treści (liczba / lista / lista list).
  • Indeksy liczymy od 0.

Najdłuższy ciąg jedynek

Otrzymujesz listę składającą się wyłącznie z 0 i 1. Znajdź indeks zera, które po zamianie na 1 da najdłuższy ciąg kolejnych jedynek.

Trudnosc: ★★☆

Przesuń zera na koniec listy

Otrzymujesz listę liczb całkowitych. Przenieś wszystkie zera na koniec listy, zachowując kolejność pozostałych elementów.

Trudnosc: ★★☆

Minimalny iloczyn trzech liczb

Otrzymujesz listę liczb całkowitych. Znajdź najmniejszy możliwy iloczyn trzech liczb wybranych z tej listy.

Trudnosc: ★★☆

Wspólny podciąg o największej długości (równe sumy)

Otrzymujesz dwie listy binarne A i B (zera i jedynki) o tej samej długości. Znajdź maksymalną długość podciągu (ciągłych elementów), dla którego suma elementów

Trudnosc: ★★★

Zbiór potęgowy listy

Otrzymujesz listę liczb naturalnych (mogą występować powtórzenia). Wygeneruj zbiór wszystkich możliwych podzbiorów tej listy.

Trudnosc: ★★★

Połączenie posortowanych list (unikalne)

Otrzymujesz listę zawierającą M posortowanych list liczb naturalnych. Połącz je w jedną posortowaną listę zawierającą wszystkie elementy bez powtórzeń.

Trudnosc: ★★★

Pojemność wody między słupkami

Otrzymujesz listę liczb naturalnych — wysokości słupków. Oblicz, ile jednostek wody może się zatrzymać pomiędzy słupkami po deszczu.

Trudnosc: ★★★

Maksymalny zysk ze sprzedaży sznurka

Masz sznurek o długości n i cennik: ceny kawałków długości od 1 do n. Możesz pociąć sznurek na kawałki o całkowitych długościach. Znajdź maksymalny zysk.

Trudnosc: ★★★

Najdłuższy naprzemienny podciąg

Otrzymujesz listę liczb całkowitych. Znajdź najdłuższy podciąg naprzemienny, w którym różnice między kolejnymi elementami zmieniają znak (raz dodatnia, raz ujem

Trudnosc: ★★★

Rozdział: Napisy — zadania dodatkowe

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout).
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem.
Konwencje wspólne:

  • Jeśli wejściem jest „napis” — wczytaj całą linię (razem ze spacjami), o ile zadanie nie mówi inaczej.
  • Wypisuj dokładnie to, co wynika z polecenia: jeden napis / Prawda / Fałsz / lista.
  • Wielkość liter ma znaczenie, jeśli nie napisano inaczej.
  • Dla list w wyjściu przyjmujemy zapis w stylu Pythona, np. ['a', 'b'], jeśli zadanie mówi „lista”.