FR_07_01 - LATKARF |
Zadanie konkursowe podane jako pierwsze powinno być proste - tzw. elementarne i takie jest. Dla zadanych dwóch liczb określ, która jest większa. Niestety przez nieuwagę, autor zadania podał cyfry liczb w odwrotnej kolejności. Twoim zadaniem jest porównanie ich i wypisanie tej, która jest większa (jeśli liczby są równe, wypisujemy dowolną). Porównanie powinno być przeprowadzone na liczbach zapisanych w oryginale.
W pierwszym wierszu jedna liczba t określająca liczbę zapytań (t < 106).
W drugim wierszu po dwie liczby naturalne zapisane w odwrotnej kolejności cyfr. Każda mieści się w 32 bitowym typie danych.
Dla każdego zapytania większa liczba w jej pierwotnej postaci.
Wejście: 3 2 0 123 321 231 141 Wyjście: 2 321 141
FR_07_02 - Porównywanie ułamków |
Porównywanie ułamków
Porównaj dwa ułamki zwykłe.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita d (1 ≤ d ≤ 1000) oznaczająca liczbę przypadków testowych. W kolejnych wierszach dane są przypadki testowe. Dla każdego przypadku testowego podane są dwa ułamki zwykłe w formacie a/b c/d, gdzie a, b, c, d to liczby całkowite dodatnie spełniające warunki: 1 ≤ a, b, c, d, ≤ 104.
Wyjście
Dla każdego przypadku testowego należy wypisać w osobnym wierszu:
1, jeśli pierwszy ułamek jest większy
2, jeśli drugi ułamek jest większy
0, jeśli ułamki mają tę samą wartość
Przykład
Wejście
3
1/2 1/3
2/3 3/4
3/6 1/2
Wyjście
1
2
0
FR_07_03 - Register & Login |
Bajtek tworzy nowy portal randkowy. Aktualnie pracuje nad funkcjami tworzenia oraz logowania się do kont, z których to będą korzystać samotni mieszkańcy Bajtocji. Powszechnie wiadomo, że bazy danych użytkowników rządzą się swoimi prawami: loginy muszą się od siebie różnić, mieć określoną budowę itp. Bajtek powinien się również zatroszczyć o tzw. "Januszy i Grażyny bezpieczeństwa" – ludzi, którzy uważają, że 3-literowe hasła są skuteczną bronią przeciw atakom równie samotnych hakerów. Jako że wiesz, jak dużej liczbie mieszkańców Bajtocji doskwiera samotność, pomóż 8-bitowemu przyjacielowi w napisaniu programu, który przeprowadzi proces rejestracji nowych użytkowników i zweryfikuje próby logowania na konta. Może wymyślisz też nazwę portalu?
Wejście składa się z nieokreślonej ilości wierszy. W pierwszej kolejności znajduje się jeden z dwóch napisów: "register" lub "login" oznaczających rejestrację i logowanie do konta.
Po określeniu czynności widnieje niewielka ilość x działań do wykonania przez program. W kolejnych xlinijkach, znajdują się login i hasło.
W przypadku rejestracji twoim zadaniem jest sprawdzić czy:
1) Login oraz hasło są zgodne z niżej postawionymi kryteriami, jeśli nie to należy wypisać "Blad".
- login musi zawierać od 3 do 12 znaków, a hasło od 5 do 15
- login może zawierać tylko litery oraz cyfry (wielkość liter nie ma znaczenia)
- hasło musi zawierać co najmniej jedną wielką, małą literę, jedną cyfrę oraz jeden znak specjalny
2) Login nie został już użyty przez innego użytkownika podczas rejestracji.
Jeśli został już użyty, należy wypisać "Login zajety", natomiast jeśli wszystko będzie się
zgadzać należy wypisać "Zarejestrowano".
W przypadku logowania twoim zadaniem jest określić czy:
1) Konto istnieje, jeśli nie to należy wypisać "Konto nie istnieje".
2) Login i hasło zgadzają się ze sobą, w innym wypadku należy wypisać "Zle haslo".
Jeśli wszystko się zgadza należy wypisać "Zalogowano".
Wejście:
register 3 bajtek13 Haslo123@ BITEK 123456789 bajtek13 bajteK55% login 5 bajtek13 bajteK55% bajtek13 Haslo123@ BITEK 123456789 bajtocjusz haselko49 bitariusz 123haSlo!@# register 1 BITEK Dobrehaslo1! login 1 BITEK Dobrehaslo1!
Wyjście:
Zarejestrowano Blad Login zajety Zle haslo Zalogowano Konto nie istnieje Konto nie istnieje Konto nie istnieje Zarejestrowano Zalogowano
FR_07_04 - Przecena |
Przecena
Cenę pewnego towaru obniżono najpierw o a%, a następnie nową cenę obniżono jeszcze o b%. O ile procent obniżono początkową cenę towaru?
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita d (1 ≤ d ≤ 1000) oznaczająca liczbę przypadków testowych. W kolejnych wierszach dane są po dwie liczby całkowite a i b (1 ≤ a, b ≤ 99), oznaczające kolejne wartości procentowe o jakie obniżono dwukrotnie cenę towaru.
Wyjście
Dla każdego przypadku testowego, w osobnym wierszu, należy wypisać o ile procent (z dokładnością do dwóch cyfr po przecinku) obniżono początkową cenę towaru.
Przykład
Wejście
1
50 50
Wyjście
75.00
FR_07_05 - Obraz |
Załóżmy, że dwa piksele są do siebie podobne wtedy, gdy suma bezwzględnych róznic ich wartości R, G, B jest mniejsza lub równa pięć. Oblicz, jaką część wszystkich pikseli obrazu stanowią piksele podobne do odpowiednich pikseli drugiego obrazu.
Na początku zostaną podane 2 liczby naturalne x i y (x,y<=100), a następnie y linii po x kolorów zapisanych w systemie szesnastkowym. W kolejnej linii znajdzie się liczba t oznaczająca ilość obrazów do porównania z obrazem wyjściowym. Każdy kolejny obraz ma taką samą wielkość jak obraz wyjściowy.
Dla każdego porównanego obrazu należy wypisać w nowej linii stosunek ilość pikseli podobnych do ilości pikseli całego obrazu w formie ułamka dziesiętnego z dokładnością do 2 miejsc po przecinku.
Input: 2 3 #2923BE #84E16C #D6AE52 #9049F1 #F1BBE9 #EBB3A6 3 #2822BD #83E26B #D6AE51 #914AF2 #F2BAEA #EAB2A6 #2925BC #86E26B #D6AF53 #9248F0 #F2BCE9 #EDB3A6 #2920BC #85E36A #D6AF4F #8E47F4 #F1BBE6 #EBB6A8 Output: 1 1 0.83
FR_07_06 - Szachownica vs kwadraty |
Wyobraźmy sobie szachownicę podzieloną na n x n jednostkowych kwadratów. Zadanie polega na zliczeniu wszystkich kwadratów, które występują na szachownicy.
W pierwszym wierszu jedna liczba q określająca liczbę zapytań (nie więcej niż 106).
W kolejnych q wierszach po jednej liczbie n określające wymiar szachownicy (n < 106+1).
Dla każdego zapytania liczba kwadratów, które znajdują się na szachownicy o wymiarze n x n.
Wejście: 3 1 2 4 Wyjście: 1 5 30
FR_07_07 - Przygody Informatyka Jonesa |
Nasz tytułowy bohater jest słynnym podróżnikiem, pochodzącym z Programinii. W kraju tym, wszyscy w zależności od regionu czy miasta mówią różnymi językami programowania. Na przykład w Trójmieście Języków C, gdzie miasta to: City, City++ i City#, ludzie mówią odpowiednio w języku C, C++ i C#. Ciekawym regionem jest również Okręg Przemysłowy Brainf*cktory, gdzie mówi się, a jakże, w Brainf*cku. Wróćmy, więc do naszego podróżnika. Król Asemblord – władca Programinii, zlecił mu misję zbadania odległych krain, leżących poza Programinią. Tym razem Informatyk Jones udał się do bardzo dziwnego kraju. Istoty tam żyjące nie mówią językiem programowania, lecz normalnym językiem z gramatyką. Długo zajęło mu poznanie i nauczenie się owej mowy, lecz w końcu udało się i zapragnął stopniowo wysyłać królowi tajniki jej gramatyki, lecz biorąc pod uwagę charakterystykę Programinii, nie pisał on zwykłych listów, lecz programy. Wysyłając „list” opisujący zasady tworzenia liczby mnogiej, napotkał pewne problemy. Oto zasady jej tworzenia:
- jeżeli w wyrazie występuje samogłoska –e to –e zmienia się w –i oraz jeżeli w wyrazie występuje samogłoska –a to –a zmienia się w –e,
- jeżeli w wyrazie nie występują samogłoski –a ani –e, ale jeżeli występuje samogłoska –o to –o zmienia się w –e, jeżeli –o, ani –a, ani –e nie występuje, ale występuje –u to –u zamieniamy w –e i jeżeli żadna z wymienionych samogłosek nie występuje to, jeżeli występuje samogłoska –y to –y zmienia się w –e,
- samogłoska –i nie ulega żadnym zmianom.
Zasady wydają się proste, lecz język ten charakteryzuje się pewnymi nadrzędnymi regułami:
- w każdym wyrazie musi znajdować się co najmniej jedna samogłoska,
- dwie lub więcej takich samych samogłosek nie mogą występować obok siebie, czyli połączenia typu –aa, -ee, –oo, -uu, -ii -yy są niedozwolone,
- samogłoski nie mogą być używane jako półsamogłoski, czyli –i nie może być używane jako –j, oznacza to, że nie mogą występować takie połączenia jak –ie, -ia, -io, iu, iy, chyba, że przed takim połączeniem występuje spółgłoska –n, wtedy należy to przeczytać jako polskie –ń oraz połączenie może być dozwolone, jeżeli przed połączeniem –ie występuje –k lub –g, ponieważ wtedy czytamy tak jak po polsku np. w wyrazach kiełbasa czy kiełki (połączenia –ei, -ai, –oi -ui, yi są jak najbardziej dozwolone).
Wciel się w rolę słynnego podróżnika Informatyka Jonesa i prześlij królowi „list”, w którym zostaną omówione zasady tworzenia liczby mnogiej. Nie trzeba się obawiać, że król nie zrozumie „listu”, ponieważ zna on wszystkie języki programowania. Zważ każde słowo, ponieważ władca Programinii posiada osobistego cenzora SPOJusza, który przedstawia królowi tylko poprawnie napisane „listy”.
W pierwszym wierszu zostanie podana jedna, niewielka liczba naturalna t określająca liczę zestawów danych. Każdy zestaw składa się z jednego wyrazu zawierającego maksymalnie 25 znaków, będących jedynie małymi literami alfabetu łacińskiego (wszystkimi oprócz x i v) (wyrazy mogą, ale nie muszą spełniać zasad tego języka).
Na wyjściu należy podać liczbę mnogą, utworzoną od danego wyrazu (zgodnie z zasadami omówionymi powyżej). Samogłoski -a oraz -e należy zamieniać jednocześnie. Jeżeli w wyrazie pewna samogłoska nie może zostać zamieniona, ponieważ zamiana ta spowodowałaby złamanie którejkolwiek z reguł nadrzędnych, to nie zamieniamy danej samogłoski. Jeżeli w wyrazie pewna samogłoska nie może zostać zamieniona to nie oznacza to, że inne także nie mogą zostać zamienione. Jeżeli wyraz na wejściu nie spełnia którejkolwiek z reguł nadrzędnych należy wypisać: „wyraz niezgodny z zasadami mowy”.
Wejście:
13 bool sqrt io hila gaur huo onge niea feal esa kear seanta eao Wyjście:
wyraz niezgodny z zasadami mowy wyraz niezgodny z zasadami mowy wyraz niezgodny z zasadami mowy hile geur hue ongi niea feal ise kier seante eao
FR_07_08 - Czerwony proszek |
Na wejście programu zostanie podana pewna nieokreślona ilość 100-znakowych łańcuchów znaków, reprezentujących zawartość obszaru. Każdy łańcuch oddzielony jest znakiem nowej linii.
Na wyjściu programu ma pojawić się ciąg binarny, odpowiadający wejściu. Jeśli jesteśmy w stanie przeprowadzić energię z punktu (0,0) do punktu (9,9), wypisujemy 1, jeśli nie, to 0.
Wejście: RROOOOOOOOORROOOOOOOOORPOOOOOOOOORROOOOOOOOORROOOOOOOOORPOOOOOOOOORROOOOOOOOORROOOOOOOOORPOOOOOOOOOR ROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOOPOOOOOOOOOROOOOOOOOOROOOOOOOOOROOOOOOOOORRPRRRRRRR Wyjście: 1 0
FR_07_09 - System liczbowy inny niż inne |
Na temat systemów liczbowych można pisać bardzo wiele. Ulubionym system dla ludzi jest system dziesiętny. Wszelkie wartości liczb zapisane za pomocą dziesięciu cyfr są doskonale rozumiane i raczej nie wyobrażamy sobie aby używać innego. Komputery lubują się w systemie dwójkowym, a w Trójkolandii obowiązującym systemem jest system trójkowy. Zaważ, że w każdym wspomnianym systemie podstawa jest stała - w dziesiętnym jest to liczba 10, natomiast w dwójkowym liczba 2. W tym zadaniu zajmiemy się systemem, w którym mnożniki kolejnych pozycji nie są zdefiniowane w postaci potęgi pewnej podstawy tylko przez silnię kolejnych liczb naturalnych dodatnich.
Np. liczba
(100)10 = 4⋅4! + 0⋅3! + 2⋅2! + 0⋅1! = (4020)!
Zadanie polega na zamianie liczby z systemy dziesiętnego na opisany w treści zadania. Rozpatrujemy cyfry: {0, 1, 3, ..,9, A, B, ...}.
W pierwszym wierszu jedna liczba t określająca liczbę zestawów danych (nie więcej niż 106).
W kolejnych t wierszach po jednej liczbie całkowitej a zapisanej w systemie dziesiętnym mieszczącej się w przedziale [0..264-1].
Dla każdego zestawu testowego po jednej liczbie zapisanej w systemie silniowym.
Wejście: 3 10 100 0 Wyjście: 120 4020 0
FR_07_10 - Szyfr vs kwadraty |
Znany kryptograf i doradca prezydencki profesor Algobit opracował kwadratowy system szyfrujący, który będzie chronił wszystkie strategiczne informacje Państwa. Prace nad tym skomplikowanym szyfrem trwały miesiącami. Kryptoanalizą zajmowały się najlepsze specjalistki w tej dziedzinie. Stwierdzono jednoznacznie, że utworzony system jest bezpieczny i bez znajomości podstaw działania systemu nie da się go złamać. Jeśli jednak nie zgadzasz się z tym co tu napisałem, spróbuj obalić tą teorię i odszyfruj szyfrogram dowodząc swojej ogromnej inteligencji :).
Pewna nieokreślona liczba wierszy. W każdym wierszu jedno zadanie do odszyfrowania. Liczba znaków jest nie większa niz 1024.
Dla każdego wiersza oryginalna wiadomość.
Wejście: AMO LAT A A K BKLKO O LIL E E FKLRT AA
FR_07_11 - Mieszanie tablicy |
Przydatną funkcją jest system mieszający elementy tablicy. Poniżej znajduje się opis takiego systemu:
Zasada mieszania:
Wyobraźmy sobie trzy struktury działające w następujący sposób:
Elementy tablicy, które chcemy wymieszać dodajemy cyklicznie do struktury nr 1, 2 oraz 3. Następnie w ten sam sposób zdejmujemy ze struktur.
Na wejściu pojawią się elementy tablicy już pomieszane, twoim zadaniem jest wypisanie kolejnych elementów tablicy w pierwotnym ich ustawieniu. Uwaga! Jeśli istnieje kilka prawidłowych odpowiedzi, wypisujemy dowolną.
W pierwszym wierszu jedna liczba n określająca liczbę elementów tablicy (nie więcej niż 2 000 000).
W drugim wierszu n liczb całkowitych. Każda z nich mieści się w przedziale [-109..109].
Na wyjściu wypisujemy przykładowe pierwotne ustawienie elementów tablicy.
Wejście: 10 10 2 9 7 5 6 4 8 3 1 Wyjście: 1 2 3 4 5 6 7 8 9 10
FR_07_12 - Czerwone mrówki |
Czerwone mrówki
Przyrodnik Jasiu postanowił zbadać wścieklice, mrówki popularnie nazywane czerwonymi. W tym celu udał się do pobliskiego lasu, aby je poobserwować. Zdziwił się trochę, gdy zauważył, że kolonia czerwonych mrówek wymieszała się z kolonią rudnic. Postanowił zrobić trochę zdjęć. Po powrocie do domu zabrał się do analizowania zrobionych przez siebie zdjęć. Naszego przyrodnika interesuje, jaka jest liczebność wszystkich mrówek w najmniejszym prostokątnym obszarze, do którego należą wszystkie mrówki czerwone. Boki takiego prostokątnego obszaru muszą być równoległe do osi układu współrzędnych. Każda mrówka na zdjęciu opisana została za pomocą współrzędnych kartezjańskich oraz wartości 1 albo 0, gdzie 1 oznacza mrówkę czerwoną, a 0 oznacza mrówkę czarną. Teraz wystarczy już tylko napisać program, aby zaoszczędzić naszemu przyrodnikowi trochę czasu.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita d (1 ≤ d ≤ 100) oznaczająca liczbę zestawów danych - zdjęć. W pierwszym wierszu każdego zestawu znajduje się liczba całkowita n (2 ≤ n ≤ 105) oznaczająca liczebność mrówek na zdjęciu. W kolejnych n wierszach podane są po trzy liczby całkowite x, y, k (0 ≤ x, y ≤ 103, k={0,1}), gdzie wartości x, y oznaczają współrzędne kartezjańskie mrówki, a k to jej kolor. Dla k = 1 mrówka jest czerwona, dla k = 0 mrówka jest czarna. Można założyć, że żadna mrówka nie łazi po innej mrówce oraz, że rozmiar plików wejściowych nie przekracza 4 MB.
Wyjście
Dla każdego zestawu należy wypisać w osobnym wierszu jedną liczbę - liczebność wszystkich mrówek zawierających się w najmniejszym prostokątnym obszarze, do którego należą wszystkie mrówki czerwone.
Przykład
Wejście
1
9
6 3 1
1 2 0
7 2 0
5 1 1
2 5 0
4 4 0
1 4 1
3 3 0
5 7 0
Wyjście
6
Rysunek do przykładu
Mrówki czerwone jak i brzeg prostokątnego obszaru został oznaczony kolorem czerwonym. W prostokącie tym znajduje się łącznie sześć mrówek.
FR_07_13 - Strzelec wyborowy |
Należy określić, czy pozycja strzelca pozwoli trawić w cel. Rozpatrujemy sytuację, gdzie podany jest punkt kartezjański, oznaczający pozycję strzelca, odcinek równoległy do osi OY będący celem oraz odcinek także równoległy do osi OY będący przeszkodą. Należy sprawdzić, czy przeszkoda nie zasłania całkowicie celu, tzn. czy strzelec jest w stanie trafić w dowolny punkt z przedziału obustronnie otwartego (yc1, yc2).
W pierwszym wierszu trzy liczby całkowite: yc1, yc2, xc określające współrzędne celu będącego odcinkiem połączonym punktami o współrzędnych (xc, yc1) i (xc, yc2), (-106< yc1 < yc2 < 106, |xc| < 106).
W drugim jedna liczba q określająca liczbę zapytań (conajmniej jedno i nie więcej niż 1000).
Specyfikacja każdego zapytania:
W pierwszym wierszu współrzędne przeszkody, w drugim współrzędne strzelca.
Przeszkoda określona jest w postaci trzech liczb całkowitych yp1, yp2 oraz xp, określającymi przeszkodę będącą odcinkiem połączonym punktami o współrzędnych (xp, yp1) i (xp, yp2), (-106< yp1 < yp2 < 106, |xp| < 106).
Współrzędne strzelca to dwie liczby całkowite x i y, gdzie x > xc oraz |y| < 106. Odcinki ani pozycja celu nie nachodzą na siebie.
Dla każdego zapytania napis TAK jeśli strzelec ma możliwość trafienia do celu lub NIE, gdy takiej możliwości brak.
Wejście: 1 3 -4 2 -1 1 1 3 -1 2 3 2 4 2 Wyjście: NIE TAK
FR_07_14 - Plaster miodu |
Plaster miodu
Narysuj plaster miodu złożony z n kolumn, po mkomórek w każdej kolumnie.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita d (1 ≤ d ≤ 100) oznaczająca liczbę przypadków testowych. Każdy zestaw składa się z dwóch wierszy. W pierwszym wierszu podana jest liczba całkowita k (1 ≤ k≤ 100) oznaczająca liczbę kolumn plastra miodu. W wierszu drugim podanych jest k liczb całkowitych m (1 ≤ m ≤ 100) oznaczających liczebność sześciokątnych komórek w kolejnych kolumnach plastra miodu.
Wyjście
Dla każdego przypadku testowego należy narysować właściwy plaster miodu używając trzech znaków: _, /, \, znaku spacji i znaku końca linii tak, jak to pokazane jest w przykładowym wyjściu. Każdy rysunek kończy znak końca linii.
Przykład Wejście 2 4 1 1 1 1 5 3 4 1 2 4 Wyjście _ _ / \_/ \_ \_/ \_/ \ \_/ \_/ _ _ _ / \_/ \_/ \ \_/ \_/ \_/ / \_/ \_/ \ \_/ \ / \_/ / \_/ \_/ \ \_/ \ \_/ \_/ / \ / \ \_/ \_/
FR_07_15 - Sfeniczne i nie tylko |
Miałeś już okazję zapoznać się z liczbami sfenicznymi chociażby rozwiązując jedno z zadań próbnym VII edycji konkursu "FRAKTAL". Przypomnijmy: liczba sfeniczna, to taka liczba naturalna, która rozkłada się na iloczyn dokładnie trzech różnych liczb pierwszych. Utrudnijmy to zadanie i zdefiniujmy liczbę k-sfeniczną. Liczbę k-sfeniczną nazywamy taką, która rozłoży się na iloczyn dokładnie k różnych liczb pierwszych. Zadanie polega na napisaniu programu, który będzie odpowiadać na pytanie, ile podano liczb k-sfenicznych w ciągu liczb naturalnych dodatnich począwszy od indeksu w przedziale [a..b], gdzie a to indeks początkowy przedziału, natomiast b to indeks końcowy (wyrazy ciągu indeksujemy od 1).
W pierwszym wierszu jedna liczba naturalna n określająca długość ciągu (nie więcej niż milion).
W drugim wierszu n liczb naturalnych dodatnich nie większych niż milion.
Następnie jedna liczba q określająca liczbę zapytań. Każde zapytanie składa się z trzech liczb całkowitych a, b i k takich, że 1 ≤ a ≤ b ≤ n definiujących przedział [a..b] oraz 1 ≤ k ≤ 20, określająca ilość liczb pierwszych w rozkładzie badanych liczb.
Dla każdego zapytania jedna liczba określająca liczbę liczb sfenicznych o k rozkładzie.
Wejście: 7 3 6 8 9 20 13 80 5 1 7 3 1 7 1 2 6 2 5 7 3 1 1 1 Wyjście: 0 2 1 0 1
FR_07_16 - Zawody |
Zawody
Jasiu i jego robot bierze udział w zawodach. Robot może poruszać się po prostokątnej mapie pól w metryce miasto. Startuje z lewego górnego pola do prawego dolnego i wraca z powrotem do punktu startu. Kiedy idzie na południowy-wschód może poruszać się tylko w prawo lub na dół, a w drodze powrotnej może poruszać się wyłącznie w lewo lub do góry. Robot powinien obrać taką drogę, aby odwiedzić jak najwięcej oznaczonych pól z gwiazdkami, przy czym robot nie może przechodzić przez pola oznaczone znakiem x. Po zbadaniu mapy, Jasiu zdaje sobie sprawę, że zadanie nie jest takie proste i trzeba robota odpowiednio zaprogramować. Dlatego uprzejmie prosi Ciebie o pomoc w napisaniu programu, który pozwoli robotowi optymalnie przejść mapę. Mając do dyspozycji mapę 2D, w której zaznaczone są pola z gwiazdkami oraz pola x, po których robot poruszać się nie może, wyznacz maksymalną liczbę pól z gwiazdkami, do których robot może dotrzeć. Pola z gwiazdkami odwiedzone dwa razy liczone są tylko raz.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita d (1 ≤ d ≤ 100) oznaczająca liczbę zestawów danych. W pierwszym wierszu każdego zestawu znajdują się dwie liczby całkowite a, b (2 ≤ a, b ≤ 100) oznaczające długość i szerokość mapy. W kolejnych wierszach opisana jest mapa złożona z b wierszy, każdy wiersz po aznaków o następujących oznaczeniach:
. - chodnik, po którym może poruszać się robot
* - pole z gwiazdką
x - pola, po których robot poruszać się nie może
Należy założyć, że lewe górne pole oraz prawe dolne to pole, w którym nie ma znaku x oraz, że istnieje co najmniej jedna droga łącząca lewe górne pole z polem prawym dolnym.
Wyjście
Na wyjściu, dla każdego przypadku testowego, należy wypisać maksymalną liczbę pól z gwiazdkami, które robot może odwiedzić.
Przykład Wejście 2 8 6 *....... ....**x. ..**..x* .*xxx*.. ...x*.x* *....... 5 5 .*... .xxx. *.*.* .xxx. .*.*. Wyjście 7 5
FR_07_17 - Bajtogalareta |
Jak w wielu krajach, również w Bajtocji mieszkańcy wymyślili swój narodowy deser: bajtogalaretę. Są to galaretki zanużone w budyniu. Przysmak jest jednak w fazie testów. Przygotowuje się go w pojemnikach o wymiarach a[dm] x b[dm] x 1 dm. Najpierw do formy wpuszcza się sześcienne galaretki o objętości 1 dm3 każda. Zatrzymują się one w różnych miejscach pojemnika, ale ich odległości od jego dna oraz brzegów wyrażone w decymetrach są zawsze liczbami całkowitymi (specjalna receptura). Następnie od góry zalewa się je budyniem. Ten oczywiście ścieka na dół formy, gdy jednak spotyka na swojej drodze galaretkę, to połowa płynie na lewą stronę, a połowa na prawą. Gdy budyń nie mieści się z jednej strony, to przepływa na drugą. Jako że formy są szybko schładzane, nie działa tu zasada naczyń połączonych. Kucharze pracują jeszcze nad optymalną gęstością bajtogalarety i chcieliby prowadzić statystyki mówiące o tym, ile budyniu zajduje się w każdej kolumnie o szerokości 1 dm. Pomóż im i napisz program, który po prześwietleniu formy odpowie na ich pytanie.
Na początku zostaną podane 4 liczby całkowite: a i b (a,b<=100) oznaczające wymiary formy, w (0<w<=a) mówiąca, na którym decymetrze od lewej strony znajduje się wlew budyniu oraz l oznaczająca ilość budyniu do dyspozycji w dm3.
Następnie do wczytania będzie b wierszy po a znaków "0" lub "1" oznaczających kolejno miejsce puste lub wypełnione galaretą. W każdym przypadku testowym budyń mieści się w pojemniku.
Na wyjściu wypisz a liczb rzeczywistych odpowiadających ilości budyniu w każdej kolumnie pojemnika.
Input: 14 8 6 22 00000000000000 01010110000000 01010100000000 00111101100000 10000101000000 00000111010000 01000001001010 00000001001000 Output: 1 1 3 1 3 1 3 0 2.5 2 0 2 1 1.5
FR_07_18 - Tentaizu |
Tentaizu
Tentaizu to japońska gra umysłowa, której reguły przypominają trochę reguły popularnego sapera. Tentaizu to diagram 7 × 7, w którym dokładnie 10 spośród 49 pól to ukryte gwiazdy. Na podstawie wskazówek w postaci odkrytych liczb, należy ustalić, w których polach znajdują się gwiazdy. Liczba w polu określa, z iloma polami z gwiazdami sąsiaduje to pole poziomo, pionowo lub skośnie. Żadne pole liczbowe nie zawiera gwiazdy, ale gwiazda może zawierać się w polu, w sąsiedztwie której nie ma pól liczbowych. Jak się zapewne domyślasz, zadaniem Twoim jest napisanie programu, który rozwiąże Tentaizu.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita d (1 ≤ d ≤ 100) oznaczająca liczbę przypadków testowych. W kolejnych wierszach znajdują się przypadki testowe. Każdy przypadek to początkowe Tentaizu, czyli diagram 7 × 7, na który składa się 7 wierszy po 7 znaków w każdym wierszu. Każe pole diagramu to albo znak kropki, albo liczba z przedziału [0-8]. Pomiędzy przypadkami testowymi znajduje się dodatkowy znak końca linii.
Wyjście
Na wyjściu wydrukuj rozwiązany diagram Tentaizu w tym samym formacie co diagram wejściowy. Rozwiązany diagram oznacza, że należy zastąpić znakiem gwiazdki dokładnie 10 pól oznaczonych znakiem kropki. Należy założyć, że każdy diagram na wejściu ma dokładnie jedno unikalne rozwiązanie. Między wydrukowanymi diagramami może znajdować się dodatkowy znak końca linii.
Przykład Wejście 2 .....1. ....22. .1..... ..231.1 ...1... ......3 ..3..2. 1....0. .1..... 1..3... ..23.2. ..3.... .3....2 1.1..2. Wyjście ....*1. ....22. .1*.*.. ..231.1 ..*1..* .*...*3 .*3*.2* 1....0. *1.*... 1..3*.. ..23*2. .*3*... *3*..*2 1.1..2*
FR_07_19 - Sciezka |
Jasio po godzinach spędzonych z matematyką musi czasem od niej odpocząć. Lubi wtedy grać w gry MMORPG. Królowa nauk jest jednak obecna i tutaj. Jasio w swojej grze ma do wykonana kilka zadań (questów). Aby wykonać każdy z nich, trzeba odwiedzić kilka miejsc. Miejsca są ze sobą połączone, ale żeby dostać się z jednego do drugiego, trzeba zapłacić określoną kwotę. Można jednak wyznaczyć optymalną trasę między nimi, wykonując kilka zadań w jednym czasie. Pomóż Jasiowi i oblicz, jaką najmniejszą kwotę musi przygotować, by wykonać wszstkie zadania.
Na początku zostaną podane dwie liczby: m(m<100) oznaczająca ilość wszystkich miejsc oraz s(s<300) oznaczająca ilość dostępnych ścieżek między nimi. W kolejnych m liniach na wczytanie będą czekać nazwy miejsc (nie występują w nich spacje i nazwa jest krótsza niż 35 znaków). Potem podanych będzie s linii zawierających informacje o ścieżkach: jakie miejsca łączą oraz jaki jest koszt podróży. W kolejnej linii znajduje się miejsce startowe. Na końcu wejścia do wczytania będzie od 1 do 3 linii. Każda z nich to zadanie złożone z nieokreśclonej liczby miejsc do odwiedzenia, jednak łączna ich ilość nie przekracza 50.
Na wyściu ma znaleźć się jedna liczba oznaczająca kwotę potrzebną do wykonania wszystkich zadań.
Input: 10 31 Town_of_Schuttgart Town_of_Goddard Rune_Township Town_of_Aden Town_of_Oren Town_of_Giran Town_of_Dion Town_of_Gludio Gludin_Village Heine Town_of_Schuttgart Town_of_Goddard 10000 Town_of_Goddard Rune_Township 10000 Town_of_Goddard Town_of_Aden 8100 Town_of_Goddard Town_of_Schuttgart 10000 Rune_Township Town_of_Goddard 10000 Rune_Township Town_of_Oren 10000 Rune_Township Town_of_Aden 37000 Town_of_Aden Town_of_Goddard 8100 Town_of_Aden Rune_Township 37000 Town_of_Aden Town_of_Oren 6900 Town_of_Aden Hunters_Village 5900 Town_of_Aden Town_of_Oren 6900 Town_of_Aden Town_of_Giran 13000 Town_of_Oren Town_of_Aden 6900 Town_of_Oren Rune_Township 10000 Town_of_Oren Hunters_Village 4100 Town_of_Oren Town_of_Giran 9400 Hunters_Village Town_of_Oren 4100 Hunters_Village Town_of_Aden 5900 Town_of_Giran Town_of_Aden 13000 Town_of_Giran Town_of_Oren 9400 Town_of_Giran Town_of_Gludio 29000 Town_of_Giran Town_of_Dion 6800 Town_of_Giran Heine 7600 Heine Town_of_Giran 7600 Heine Town_of_Dion 12000 Town_of_Dion Heine 12000 Town_of_Dion Town_of_Giran 6800 Town_of_Dion Town_of_Gludio 3400 Town_of_Gludio Gludin_Village 7300 Gludin_Village Town_of_Gludio 7300 Town_of_Goddard Town_of_Gludio Town_of_Oren Town_of_Schuttgart Heine Town_of_Oren Gludin_Village Gludin_Village Rune_Township Town_of_Oren
Output:
100400
FR_07_20 - Lider II |
W Dwójkolandii przyszedł czas na długo wyczekiwane wybory. Okręgi wyborcze wystawiły swoich kandydatów, a wyborcy zapoznali się z ich planami wyborczymi. Dziś jest dzień wyborów, a ty zostałeś powołany na wolontariat polegający na zliczaniu głosów i określeniu, czy w danym okręgu wyborczym jakiś kandydat osiągnął więcej niż 50% głosów. System wyborczy w Dwójkolandii działa następująco. Wyborcy należący do danego okręgu wyborczego są zapisani na spójnej liście, jeden za drugim, itd. Wszystkie listy połączone są w jedną wielką listę. Dodatkowo każdy wyborca ma prawo zmienić swój wybór i zaznaczyć innego kandydata - taki system :). Ty jednak jesteś bardzo sprytną osobą i pojąłeś trudną sztukę programowania. Napisz program, który znacznie ułatwi ci pracę na wolontariacie, wyznaczający lidera w przedziale liczb. Wykonujemy dwie operacje. Pierwsza, to zmiana wyboru kandydata na inny (zmiana decyzji wyborcy), druga to sprawdzenie, czy w okręgu zaczynającym się od wyborcy na pozycji a a kończącym się na wyborcy na pozycji b został wybrany kandydat do rządzenia Dwójkolandią - tzn. liczba oddanych głosów na tę osobę jest większa niż 50%.
W pierwszym wierszu jedna liczba n określająca liczbę wyborców (nie więcej niż 106).
W drugim wierszu n liczb naturalnych określających głosy wyborców. Każdy kandydat jest reprezentowany przez liczbę mieszczącą się w przedziale [0..109]. Jeden kandydat może być wybierany w kilku okręgach (taki system :)).
W trzecim wierszu jedna liczba q określająca liczbę zapytań (nie więcej niż 106).
Specyfikacja każdego zapytania:
najpierw jeden znak i lub q, następnie dwie liczby całkowite. Jeśli pojawi się i, zostaną podane dwie liczby całkowite x i y, oznaczające, że należy podmienić decyzję wyborcy z pozycji x w ciągu na y, natomiast, gdy pojawi się znak q, to pojawią się dwie liczby a i b, definiujące przedział [a...b], w którym należy określić, czy występuje lider w tym przedziale (1 ≤ x ≤ n, 0 ≤ y ≤ 109, 1 ≤ a ≤ b ≤ n).
Dla każdego zapytania, w którym wystąpiła litera q należy wypisać lidera zbioru w przedziale [a..b], lub napis brak, gdy lider nie występuje.
Wejście: 6 2 2 3 2 7 8 5 q 1 4 q 1 1 i 3 7 q 3 5 q 3 6 Wyjście: 2 2 7 brak