Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_15_07 - Scrabble 2 |
Ulubioną grą Stasia i Grzesia jest ich własna wersja gry Scrabble. W grze obowiązują następujące zasady:
- Chłopcy przed rozpoczęciem każdej partii ustalają ile łącznie wyrazów ułożą na planszy. Liczba wyrazów zawsze jest z przedziału od 2 do 10 włącznie.
- Grę rozpoczyna dowolny z chłopców.
- Chłopcy układają wyrazy na zmianę.
- Każdy kolejny wyraz musi być połączony z już istniejącym(i) i ułożony do niego/nich prostopadle. Gwarantuje to, że w każdym ruchu powstanie dokładnie jeden nowy wyraz. Oczywiście reguła ta nie dotyczy pierwszego układanego wyrazu.
- Punkty przyznawane są za każdy wyraz ułożony poziomo albo pionowo.
- Podstawowa wartość wyrazu to suma punktów przyznanych za każdą literę. Za samogłoskę (A,E,Y,U,I,O) dodajemy 1 punkt, zaś za spółgłoskę 3 punkty.
- Do podstawowej wartości wyrazu doliczane są premie literowe, a następnie słowne.
- Na planszy występują dwa rodzaje premii literowych:
- podwójna - oznaczona znakiem 2 - wartość litery wzrasta dwukrotnie
- potrójna - oznaczona znakiem 3 - wartość litery wzrasta trzykrotnie
- Oraz dwa rodzaje premii słownych:
- podwójna - oznaczona znakiem D - wartość wyrazu wraz z uwzględnieniem premii literowych i innych premii słownych wzrasta dwukrotnie
- potrójna - oznaczona znakiem T - wartość wyrazu wraz z uwzględnieniem premii literowych i innych premii słownych wzrasta trzykrotnie
- Na planszy może wystąpić dowolna liczba pól premii literowych oraz słownych.
- Wynik gracza to suma wartości wszystkich ułożonych przez niego wyrazów z uwzględnieniem premii literowych oraz słownych.
Chłopcy właśnie zakończyli kolejną emocjonującą partię i mieli wziąć się za zliczanie punktów, kiedy uświadomili sobie, że żaden z nich nie zapisywał układanych przez siebie wyrazów ani cząstkowych wyników, nie pamiętają nawet kto rozpoczął grę. Na całe szczęście zasady ich wersji gry zdecydowanie ułatwiają odtworzenie przebiegu rozgrywki i nasi bohaterowie zamierzają z tego skorzystać. Grześ zamierza z tego skorzystać zdecydowanie bardziej niż Staś i poprosił Cię o napisanie programu, który obliczy ile maksymalnie punktów można było zdobyć układając co drugi wyraz. Oczywiście nie zamierza on odtwarzać rzeczywistego przebiegu rozgrywki, lecz takiego, w którym zdobywa on maksymalną możliwą liczbę punktów, a rozgrywka przebiega zgodnie z wymyślonymi przez chłopców zasadami.
Wejście
W pierwszej linii wejścia znajdują się dwie liczby całkowite a i b (2 ≤ a, b ≤ 30) określające rozmiar planszy do gry. W kolejnych a liniach znajduje się po b znaków opisujących premie występujące na planszy:
- 0 - brak premii
- 2 - podwójna premia literowa
- 3 - potrójna premia literowa
- D - podwójna premia słowna
- T - potrójna premia słowna
W następnych a liniach znajduje się po b znaków opisujących wyrazy ułożone na planszy. Każdy znak to . oznaczająca puste pole albo wielka litera alfabetu angielskiego.
Wyjście
Na wyjściu należy wypisać maksymalną możliwą liczbę punktów jaką mógł zdobyć Grześ.
Przykład
Wejście
4 5 002TD T0030 0230D 30D20 .ALGO ..I.. ..G.. START
Wyjście
110
Dodane przez: | Maciej Boniecki |
Data dodania: | 2014-03-29 |
Limit czasu wykonania programu: | 0.5s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU |
Pochodzenie: | ALGOLIGA |
ukryj komentarze
2014-03-30 12:19:54 Maciej Boniecki
Nie mogą. Wyraz musi być ułożony prostopadle do wszystkich z którymi się łączy co zostało opisane w treści. |
|
2014-03-30 12:11:03 Ostry
Czy dwa słowa mogą leżeć równolegle do siebie bezpośrednio jedno pod drugim (albo jedno obok drugiego)? np mając planszę: DOMEK A.... R.... czy mogę dodać AMOR następująco: DOMEK AMOR. R.... Jeżeli tak, to dodając jeden wyraz teoretycznie można "przy okazji" utworzyć bardzo wiele dodatkowych wyrazów. Ostatnio edytowany: 2014-03-30 12:14:07 |