Kategorie
Materiały
Linki zewnętrzne
To jest stara wersja strony!
W tym dziale będą pojawiały się, co tydzień w piątek, nowe wyzwania programistyczne. Zadania te są nieobowiązkowe i przeznaczone jedynie dla ochotników, chcących sprawdzić swoje umiejętności algorytmiczne i programistyczne, podczas kodowania w języku C.
Czas na wykonanie każdego z wyzwań weekendowych upływa w niedzielę, o godzinie 23:59. Trzy osoby, które najszybciej prześlą największą liczbę poprawnych rozwiązań, zostaną zwolnione z konieczności oddania części prac domowych oraz uzyskają wyższą ocenę końcową z Wykładu. Kryterium podstawowym jest liczba poprawnie wykonanych wyzwań (pozytywny test maszynowy && pozytywna ocena wykładowcy). Kryterium dodatkowym jest czas przesłania odpowiedzi (pole Data przesłania odpowiedzi w raporcie maszynowym).
Życzymy powodzenia! :)
<spoiler |Wyniki>
Nazwisko | Imię | Miejsce | Suma punktów | Wędrowiec | Enigma | Αριθμομηχανή | Cuda | Prezent | Blobik |
---|---|---|---|---|---|---|---|---|---|
Kowalski | Adrian | 1 | 51 | 10 | 5 | 7 | 10 | 10 | 9 |
Ałaszewski | Adrian | 2 | 39 | 6 | 9 | 9 | 8 | 7 | |
Franas | Alan | 3 | 28 | 7 | 7+1 | 4 | 8+1 | ||
Muras | Wojciech | 4 | 26 | 1 | 10+1 | 8 | 6 | ||
Górkiewicz | Bartłomiej | 5 | 19 | 9 | 1 | 2 | 3+1 | 3 | |
Stępień | Patryk | 6 | 15 | 1 | 10 | 4 | |||
Ogłoza | Michał | 7 | 11 | 1 | 3 | 3 | 2 | 2 | |
Węgrzyński | Bartłomiej | 7 | 11 | 1 | 2 | 3+1 | 4 | ||
Zalewski | Łukasz | 7 | 11 | 1 | 4 | 6 | |||
Okrasa | Michał | 10 | 10 | 3 | 2 | 1 | 3 | 1 | |
Sykuła | Kamil | 10 | 10 | 5 | 4+1 | ||||
Świstak | Grzegorz | 10 | 10 | 10 | |||||
Wiśniewski | Artur | 13 | 9 | 1 | 1 | 1 | 6 | ||
Gralewski | Bartosz | 14 | 6 | 2 | 3+1 | ||||
Dziuda | Alicja | 15 | 4 | 4 | |||||
Zieliński | Kamil | 16 | 1 | 1 | |||||
Ćwiek | Dawid | 16 | 1 | 1 | |||||
Świderski | Szymon | 16 | 1 | 1 |
Wartośc +1 oznacza punkt bonusowy za spostrzegawczość :)
</spoiler>
Napisz program, który pobierze od użytkownika tablicę o wymiarach 30 x 30, a następnie odnajdzie drogę prowadzącą z punktu (0,0) do punktu (29, 29). Komórki, po których można się poruszać są oznaczone wartościami 1 we wczytanej macierzy. Z punktu startowego do końcowego prowadzi wyłącznie jedna droga, bez ślepych zaułków. Program ma wypisać, w kolejnych liniach, współrzędne wszystkich komórek, jakie odwiedził w drodze z punktu startowego do mety włącznie z nimi.
<spoiler |Przykład> Przykładowe wejście:
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
Przykładowe wyjście:
0 0 0 1 0 2 1 3 1 4 2 5 3 5 4 6 5 6 6 6 7 7 6 8 5 8 4 9 3 10 2 11 1 12 2 13 2 14 3 15 4 15 5 15 6 16 6 17 7 18 7 19 7 20 7 21 7 22 7 23 8 24 8 25 8 26 9 27 9 28 10 29 11 29 12 29 13 29 14 29 15 29 16 29 17 29 18 29 19 29 20 29 21 29 22 29 23 29 24 29 25 29 26 29 27 29 28 29 29 29
</spoiler>
* DEPESZA Z CENTRALI WYWIADU *
Udało nam się przechwycić komunikat przesłany przez naszych wrogów. Niestety, jest on zakodowana. Nasz agent, zakonspirowany w sztabie wroga, dostarczył nam jedno z użytych słów w tekście. Przekazał nam również cenną wskazówkę - nasz przeciwnik nie jest zbyt biegły w dziedzinie kryptografii. Przypuszcza się, iż tekst jest zaszyfrowany pewną wariacją szyfru Cezara, gdzie długość klucza jest mniejsza o jeden od długości znanego nam wyrazu a szyfrowanie polega na zmianie wartości kolejnych znaków na podstawie kolejnych liczb klucza.
Czy dasz radę pomóc swojej Ojczyźnie i odszyfrować przechwyconą wiadomość?
<spoiler |Przykład> Przykładowe wejście:
Podaj tekst: Uvzkk kkcu nooktio ob unlpjyxbti ufqcu Podaj uzyte slowo: tekst
Przykładowe wyjście:
Tutaj jest miejsce na odkodowany tekst
</spoiler>
W starożytnej Grecji mieliśmy powiedzenie „Kto nie liczy ten nie je” (które później ewoluowało do „Kto nie koduje w C ten nie je”). Rozumiał je Archimedes, krzycząc Heureka! Rozumieli je wszyscy. Brutalnie przekonał się o tym król perski Kserkses, który źle policzył przewagę swoich sił pod Termopilami. Aby nie popełnić jego błędu, musisz zrozumieć, co naprawdę oznacza „liczyć” a następnie nauczyć tego swój komputer. Bądź jak Pitagoras! :)
<spoiler |Przykład> Przykładowe wejście:
Podaj wyrażenie: 4+88-69-3+75+53+89/18-34/48-62-62/3*53-86
Przykładowe wyjście:
-1056
</spoiler>
Święta to czas cudów. Spotykamy się w cudownie miłej atmosferze, jemy cudownie pysznego karpia. Wyczekujemy cudowniej pierwszej gwiazdki. Nieco inaczej ma Święty Mikołaj. W ciągu jednego wieczora musi odwiedzić miliardy dzieci w miliardach domów, rozdać miliardy prezentów pod miliardy choinek. Wszystkie te liczby, z którymi ma on do czynienia, jak by na nie nie patrzeć, są również cudownie wielkie. Pomóż więc Mikołajowi w dodawaniu tych wielkich liczb i napisz program, który zrobi to za niego.
<spoiler |Przykład> Przykładowe wejście:
Podaj pierwsza liczbe: 90467506859757021571 Podaj druga liczbe: 42901800079275915926
133369306939032937497
</spoiler>
Pomysły na prezenty, jakie mają dzieci, są różne jak Świat długi i szeroki. Antoś z Krakowa chce konsole, Marysia z Warszawy latawiec a Gosia z Sosnowca nowy rowerek. Z tymi prezentami Mikołaj nie ma problemu ale czasem zdarzają się dzieci bardziej wymagające. W tym roku Mikołaj natrafił na Piotrusia i Tomusia z Łodzi, którzy chcieli dostać pod choinkę program komputerowy. A ponieważ dzieci są małe, nie potrafiły w pełni przekazać Mikołajowi, co taki program ma robić. Dostarczyły tylko to:
<spoiler |Przykład> Przykładowe wejście:
Podaj liczbe linii: 8 Podaj tekst: Drodzy Studenci! Zyczymy Wam spokojnych Swiat Bozego Narodzenia, spedzonych razem z bliskimi w cieplej i rodzinnej atmosferze. A w nadchodzacym Nowym Roku zyczymy Wam energii, sukcesow w realizacji upragnionych marzen oraz cierpliwosci i wytrwalosci w pracy nad soba! Piotr Duch i Tomasz Jaworski Podaj zakodowane hasło: 107327110719305104118530 120718223140619
Przykładowe wyjście:
Wesolych Swiat
</spoiler> Mikołajowi pomysł bardzo się spodobał, więc zlecił prace nad prezentem swoim Elfom - Wam, drodzy Studenci. Czy podołacie zadaniu i sprawicie radość dwójce małych urwisów?
Mamy nadzieję, że tak
Napisz program który, dla podanego obrazu o wymiarach z zakresu 1×1 - 50×50 punktów, znajdzie i wyświetli wszystkie obiekty nie będące tłem. Wartości punktów tła to 0 a obiektów to 1. Obiektów może być wiele. Program powinien poprosić o dwie liczby całkowite: wysokość i szerokość obrazu a następnie wczytać wartości kolejnych punktów. Jako wynik program ma wyświetlić liczbę znalezionych obiektów a następnie wyświetlić informacje o każdym obiekcie. Te informacje to: jego numer (1, 2…), powierzchnia, oraz współrzędne XY środka ciężkości, z dokładnością do dwóch miejsc po przecinku. Przed wyświetleniem obiekty należy posortować ze względu na współrzędne środa, w porządku: od góry do dołu, od lewej do prawej.
Przyjmij następujące założenia:
Przykład:
Jeden obiekt Cztery obiekty: # # ### # # # #
<spoiler |Przykład>
Wejście:
5 5 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0
Wyjście:
Liczba obiektow: 4 Obiekt 1 powierzchnia p=1 srodek ciezkosci x=1.00 y=1.00 Obiekt 2 powierzchnia p=1 srodek ciezkosci x=3.00 y=1.00 Obiekt 3 powierzchnia p=1 srodek ciezkosci x=1.00 y=3.00 Obiekt 4 powierzchnia p=1 srodek ciezkosci x=3.00 y=3.00
</spoiler>