Zadanie: A2 — Kapitan Mambeks i gra w skoczki

Transkrypt

Zadanie: A2 — Kapitan Mambeks i gra w skoczki
Koło Młodych Informatyków - Konkurs nr 2
23-01-2010
Zadanie: A2 — Kapitan Mambeks i gra w skoczki
Plik źródłowy:
A2.pas
A2.c
A2.cpp
dla języka Pascal
dla języka C
dla języka C++
Dostępna pamięć: 64 MB
Ulubionym zajęciem Kapitana Mambeksa jest gra w skoczki. Gra toczy się na planszy składającej się z n pól o numerach 1, . . . , n ułożonych w jednym wierszu w porządku
rosnącym.
1
2
3
4
5
6
W stanie początkowym pionek znajduje się w polu nr 1, a następnie jest on przemieszczany na kolejne pola przez dokonywanie skoków. Pierwszy skok musi mieć długość
równą 1, a więc jest to skok na pole nr 2. 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 2 można dokonać skok w przód
na pole nr 4 lub skok w tył na pole nr 1.
Każde pole planszy ma przypisany koszt jaki trzeba ponieść dokonując skoku na to
pole. Celem gry jest przemieszczenie pionka z pola nr 1 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 1 na pole nr n.
Specyfikacja wejścia
Wejście zawiera wiele zestawów danych testowych. Pierwszy wiersz pojedynczego zestawu
danych zawiera liczbę n (2 ¬ n ¬ 1000) będącą liczbą pól planszy do gry. Kolejnych n
wierszy zawiera jedną liczbę całkowitą k (0 < k < 500) 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ę 0.
Specyfikacja wyjścia
Dla każdego zestawu danych należy wypisać jaki jest minimalny koszt przemieszczenia
pionka z pola nr 1 na pole nr n.
Koło Młodych Informatyków - Konkurs nr 2
Przykładowe wejście
5
1
2
3
4
5
7
1
1
1
1
1
1
1
15
5
3
8
9
11
4
2
13
5
8
2
5
3
7
14
0
Przykładowe wyjście
13
3
42
23-01-2010
Koło Młodych Informatyków - Konkurs nr 2
23-01-2010
Zadanie: B2 — Kapitan Mambeks i działki w przestrzeni kosmicznej
Plik źródłowy:
B2.pas
B2.c
B2.cpp
dla języka Pascal
dla języka C
dla języka C++
Dostępna pamięć: 64 MB
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 (1 ¬ n ¬ 100 000) będącą liczbą działek. Kolejnych n wierszy
zawiera 6 liczb całkowitych: x1 , y1 , z1 , x2 , y2 , z2 (0 < x1 , y1 , z1 , x2 , y2 , z2 < 1000) oddzielonych od siebie pojedynczym odstępem. Liczby (x1 , y1 , z1 ) są współrzędnymi jednego z
wierzchołków prostokątnej działki, natomiast (x2 , y2 , z2 ) 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. x1 = x2 lub y1 = y2 lub z1 = z2 . Można przyjąć, że pole każdej działki
jest większe od zera.
Dane wejściowe zakończone są wierszem zawierającym liczbę 0.
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 2
Przykładowe wejście
3
10 1 10 20 1 20
20 1 40 40 1 20
80 1 80 40 1 40
3
10 1 10 40 1 40
10 2 10 40 2 40
10 3 10 40 3 40
3
10 10 1 40 40 1
20 5 20 50 5 50
10 10 60 30 50 60
4
1 1 2 5 1 20
5 1 5 5 20 30
1 1 3 10 15 3
2 2 2 8 2 3
4
1 1 1 20 20 1
3 3 1 18 18 1
5 5 1 15 15 1
7 7 1 10 10 1
4
1 1 1 2 2 1
2 1 1 3 2 1
1 2 1 1 3 1
2 2 1 3 3 1
0
Przykładowe wyjście
2
0
0
3
6
6
23-01-2010
Koło Młodych Informatyków - Konkurs nr 2
23-01-2010
Zadanie: C2 — Kapitan Mambeks i butelki z wodą
Plik źródłowy:
C2.pas
C2.c
C2.cpp
dla języka Pascal
dla języka C
dla języka C++
Dostępna pamięć: 64 MB
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 = 4
butelek wody gazowanej i m = 12 butelek wody niegazowanej. Kapitan może podzielić
wodę na 3 sposoby:
• Woda jest przydzielana tylko jednej osobie, otrzymuje ona wszystkie 4 butelki wody
gazowanej i wszystkie 12 butelek wody niegazowanej.
• Woda jest rozdzielana pomiędzy 2 osoby, każdy otrzymuje 2 butelki wody gazowanej
i 6 butelek wody niegazowanej.
• Woda jest rozdzielana pomiędzy cztery osoby, każdy otrzymuje jedną butelkę wody
gazowanej i 3 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 (1 ¬ n, m ¬ 1 000 000 000)
będące odpowiednio liczbą butelek wody gazowanej i niegazowanej.
Dane wejściowe zakończone są wierszem zawierającym dwie liczby 0.
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 2
Przykładowe wejście
4 12
16 32
17 35
75 30
0 0
Przykładowe wyjście
3
5
1
4
4
16
1
15
23-01-2010
Koło Młodych Informatyków - Konkurs nr 2
23-01-2010
Zadanie: D2 — Kapitan Mambeks i potrawa słodkokwaśna
Plik źródłowy:
D2.pas
D2.c
D2.cpp
dla języka Pascal
dla języka C
dla języka C++
Dostępna pamięć: 64 MB
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: (s1 = 2, k1 = 4); (s2 = 3, k2 = 5); (s3 = 5, k3 = 6). Słodkość potrawy jest więc
równa: s1 ∗ s2 ∗ s3 = 2 ∗ 3 ∗ 5 = 30, a jej kwaśność: k1 + k2 + k3 = 4 + 5 + 6 = 15.
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 (1 ¬ n ¬ 10) 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ż 1 000 000 000.
Dane wejściowe zakończone są wierszem zawierającym liczbę 0.
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 2
Przykładowe wejście
1
5 10
1
10 5
4
2 8
5 3
3 7
4 5
3
3 8
3 8
3 8
4
4 7
2 9
1 5
6 8
0
Przykładowe wyjście
5
5
0
3
2
23-01-2010

Podobne dokumenty