Koło Młodych Informatyków - Konkurs nr -- Zadanie: A Kapitan Mambeks i gra w skoczki Plik źródłowy: A.pas dla języka Pascal Dostępna pamięć: 6 MB A.c dla języka C A.cpp dla języka C++ Ulubionym zajęciem Kapitana Mambeksa jest gra w skoczki. Gra toczy się na planszy składającej się z n pól o numerach,..., n ułożonych w jednym wierszu w porządku rosnącym. 6 W stanie początkowym pionek znajduje się w polu nr, a następnie jest on przemieszczany na kolejne pola przez dokonywanie skoków. Pierwszy skok musi mieć długość równą, a więc jest to skok na pole nr. Kolejne skoki muszą spełniać jedno z założeń: Jeżeli skok odbywa się w przód, tj. na pole o numerze większym niż pole na którym znajduje się pionek, to musi mieć on długość o jeden większą niż długość poprzedniego skoku. Jeżeli skok odbywa się w tył, tj. na pole o numerze mniejszym niż pole na którym znajduje się pionek, to musi mieć on taką samą długość jak długość poprzedniego skoku. Przykładowo, po wykonaniu pierwszego skoku na pole nr można dokonać skok w przód na pole nr lub skok w tył na pole nr. Każde pole planszy ma przypisany koszt jaki trzeba ponieść dokonując skoku na to pole. Celem gry jest przemieszczenie pionka z pola nr na pole nr n tak, aby ponieść minimalny koszt. Twoim zadaniem jest napisanie programu, który dla zadanej planszy wyznaczy minimalny koszt przemieszczenia pionka z pola nr na pole nr n. Specyfikacja wejścia Wejście zawiera wiele zestawów danych testowych. Pierwszy wiersz pojedynczego zestawu danych zawiera liczbę n ( n ) będącą liczbą pól planszy do gry. Kolejnych n wierszy zawiera jedną liczbę całkowitą k ( < k < ) będącą kosztem jaki trzeba ponieść dokonując skok na dane pole, przy czym wiersz i ty zawiera koszt dla pola o numerze i. Dane wejściowe zakończone są wierszem zawierającym liczbę. Specyfikacja wyjścia Dla każdego zestawu danych należy wypisać jaki jest minimalny koszt przemieszczenia pionka z pola nr na pole nr n.
Koło Młodych Informatyków - Konkurs nr -- 7 8 9 8 7 Przykładowe wejście Przykładowe wyjście
Koło Młodych Informatyków - Konkurs nr -- Zadanie: B Kapitan Mambeks i działki w przestrzeni kosmicznej Plik źródłowy: B.pas dla języka Pascal Dostępna pamięć: 6 MB B.c dla języka C B.cpp dla języka C++ Kapitan Mambeks w ostatnim czasie zajmuje się przydziałem działek budowlanych w kosmicznej przestrzeni trójwymiarowej. Każda działka ma kształt prostokąta i jest ona równoległa do jednej z płaszczyzn wymiaru. Niestety Kapitan popełnił poważne błędy ponieważ niektóre pary działek mają co najmniej jeden punkt wspólny co doprowadziło do konfliktów między właścicielami przydzielonych działek. Twoim zadaniem jest napisanie programu, który dla zadanego planu przydziału działek wyznaczy liczbę par działek, które powodują konflikt. Specyfikacja wejścia Wejście zawiera wiele zestawów danych testowych. Pierwszy wiersz pojedynczego zestawu danych zawiera liczbę n ( n ) będącą liczbą działek. Kolejnych n wierszy zawiera 6 liczb całkowitych: x, y, z, x, y, z ( < x, y, z, x, y, z < ) oddzielonych od siebie pojedynczym odstępem. Liczby (x, y, z ) są współrzędnymi jednego z wierzchołków prostokątnej działki, natomiast (x, y, z ) są współrzędnymi przeciwległego wierzchołka, tj. wierzchołka po przekątnej. Ponieważ powierzchnia działki jest równoległa do jednej z płaszczyzn wymiaru, dlatego jedne z odpowiednich współrzędnych wymiaru są sobie równe, tj. x = x lub y = y lub z = z. Można przyjąć, że pole każdej działki jest większe od zera. Dane wejściowe zakończone są wierszem zawierającym liczbę. Specyfikacja wyjścia Dla każdego zestawu danych należy wypisać liczbę par działek powodujących konflikt, tj. mających co najmniej jeden punkt wspólny.
Koło Młodych Informatyków - Konkurs nr -- Przykładowe wejście 8 8 6 6 8 8 8 7 7 6 6 Przykładowe wyjście
Koło Młodych Informatyków - Konkurs nr -- Zadanie: C Kapitan Mambeks i butelki z wodą Plik źródłowy: C.pas dla języka Pascal Dostępna pamięć: 6 MB C.c dla języka C C.cpp dla języka C++ Kapitan Mambeks ma n butelek wody gazowanej i m butelek wody niegazowanej. Swoje zasoby wody postanowił rozdzielić pomiędzy pewną liczbę osób, przy czym podział postanowił dokonać w taki sposób, aby każda osoba otrzymała taką samą liczbę butelek wody gazowanej i taką samą liczbę butelek wody niegazowanej. Załóżmy, że Kapitan ma n = butelek wody gazowanej i m = butelek wody niegazowanej. Kapitan może podzielić wodę na sposoby: Woda jest przydzielana tylko jednej osobie, otrzymuje ona wszystkie butelki wody gazowanej i wszystkie butelek wody niegazowanej. Woda jest rozdzielana pomiędzy osoby, każdy otrzymuje butelki wody gazowanej i 6 butelek wody niegazowanej. Woda jest rozdzielana pomiędzy cztery osoby, każdy otrzymuje jedną butelkę wody gazowanej i butelki wody niegazowanej. Twoim zadaniem jest napisanie programu, który wyznaczy na ile sposobów Kapitan może podzielić wodę pomiędzy osoby. Specyfikacja wejścia Wejście zawiera wiele zestawów danych testowych. Każdy zestaw danych składa się z jednego wiersza zawierającego dwie liczby całkowite n, m ( n, m ) będące odpowiednio liczbą butelek wody gazowanej i niegazowanej. Dane wejściowe zakończone są wierszem zawierającym dwie liczby. Specyfikacja wyjścia Dla każdego zestawu danych należy wypisać dwie liczby całkowite a, b oddzielone pojedynczym odstępem, gdzie a jest liczbą sposobów na jakie można podzielić wodę, natomiast b jest maksymalną liczbą osób jakie mogą otrzymać wodę.
Koło Młodych Informatyków - Konkurs nr -- 6 7 7 Przykładowe wejście 6 Przykładowe wyjście
Koło Młodych Informatyków - Konkurs nr -- Zadanie: D Kapitan Mambeks i potrawa słodkokwaśna Plik źródłowy: D.pas dla języka Pascal Dostępna pamięć: 6 MB D.c dla języka C D.cpp dla języka C++ Ulubionym przysmakiem Kapitana Mambeksa jest potrawa słodko-kwaśna. Potrawa jest sporządzana z kilku składników, które wybierane są ze zbioru n składników. Każdy składnik ma pewną własność słodkości s i pewną własność kwaśności k. Słodkość potrawy jest równa iloczynowi własności słodkości wszystkich składników z których została ona sporządzona, z kolei kwaśność potrawy jest równa sumie własności kwaśności tych składników. Niech przykładowo potrawa składa się z trzech składników o następujących własnościach: (s =, k = ); (s =, k = ); (s =, k = 6). Słodkość potrawy jest więc równa: s s s = =, a jej kwaśność: k + k + k = + + 6 =. Potrawa Kapitana ma jedną ważną własność, gdyż jej słodkość i kwaśność powinny mieć zbliżone wartości. Twoim zadaniem jest, mając dany zbiór składników, ustalić dobór składników tak, aby różnica między słodkością i kwaśnością była minimalna. Należy jednak pamiętać o tym, że potrawa musi zawierać co najmniej jeden składnik. Specyfikacja wejścia Wejście zawiera wiele zestawów danych testowych. Pierwszy wiersz pojedynczego zestawu danych zawiera liczbę całkowitą n ( n ) będącą liczbą dostępnych składników. Kolejnych n wierszy zawiera opisy składników. Każdy wiersz zawiera dwie dodatnie liczby całkowite s, k określające własność słodkości i kwaśności składnika. Dane są tak dobrane, aby słodkość i kwaśność potrawy sporządzonej ze wszystkich dostępnych składników były mniejsze niż. Dane wejściowe zakończone są wierszem zawierającym liczbę. Specyfikacja wyjścia Dla każdego zestawu danych należy wypisać najmniejszą różnicę między słodkością i kwaśnością potrawy jaką można sporządzić z dostępnych składników.
Koło Młodych Informatyków - Konkurs nr -- 8 7 8 8 8 7 9 6 8 Przykładowe wejście Przykładowe wyjście