Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_12_05 - Bajtek w przedszkolu |
Bajtek skończył 3 lata, w związku z czym poszedł do przedszkola. Gdy dzieci w przedszkolu uczyły się literek, Bajtek potrafił już czytać. Gdy dzieci grały w warcaby, Bajtek grał z wychowawcą w szachy. Gdy dzieci uczyły się mnożyć, Bajtek ćwiczył całkowanie. I tak minęły tygodnie. Ostatnio dzieci dostały kartkę z wymieszanymi n symbolami kondensatorów oraz n symbolami cewek w szeregu i miały je połączyć w pary (tak, aby każdy kondensator miał do pary jedną cewkę). Wychowawca nie poczęstował nawet Bajtka kartą pracy uznając, że jest to dla niego zbyt proste zadanie. Niestety podczas ćwiczenia miał miejsce nieprzyjemny incydent. Jednemu z dzieci skończyła się ulubiona, zielona kredka, której używało do łączenia elementów elektronicznych. Skutkiem był płacz i zgrzytanie zębów. Problem rozwiązano pożyczając zieloną kredkę od innego malucha, lecz Bajtkowi to nie wystarczyło. Jako obrońca wszystkiego co optymalne i wydajne, Bajtek postanowił opracować algorytm, który zminimalizuje prawdopodobieństwo powtórzenia się takiej sytuacji. I udało mu się - algorytm, który pozwala na połączenie w pary kondensatorów i cewek przy zużyciu minimalnej ilości kredki. Będąc bardzo skrupulatnym chłopcem, Bajtek poprosił Cię o weryfikację jego algorytmu dla różnorakich testów.
Wejście
Wejście składa się z nieokreślonej liczby testów (mniejszej od 1001). Pierwsza linia każdego testu zawiera liczbę n (0 < n ≤ 106). Druga i ostatnia linia zawiera natomiast ciąg liter {'C', 'K'} (oznaczających odpowiednio cewkę i kondensator) o długości 2n.
Wyjście
Dla każdego testu jedna liczba, będąca minimalną ilością kredki potrzebną do połączenia kondensatorów i cewki w pary.
Przykład
Wejście: 1 CK 2 CKKC 2 KKCC Wyjście: 1 2 4
Wyjaśnienie do przykładu:
W pierwszym przykładzie mamy tylko jedną możliwość połączenia cewki i kondensatora. Zużywamy tylko 1 jednostkę kredki, gdyż odległość między cewką a kondensatorem wynosi 1.
W drugim przypadku mamy już 2 cewki i 2 możliwości połączenia. Łączymy pierwszą cewkę z pierwszym kondensatorem, albo z ostatnim. W pierwszym przypadku otrzymamy wynik 2, w drugim 4. Wybieramy oczywiście mniejszy.
W ostatnim teście są 2 optymalne rozwiązania. Niezależnie od tego z którą cewką połączymy pierwszy kondensator, i tak otrzymamy optymalny wynik. Uzyskamy albo 2+2, albo 1+3.
Dodane przez: | Piotr Kąkol |
Data dodania: | 2013-11-22 |
Limit czasu wykonania programu: | 0.5s-1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |
Pochodzenie: | ALGOLIGA |
ukryj komentarze
2013-11-29 13:41:08 Marcin Kasprowicz
Proszę czytać uważnie treści zadań. |
|
2013-11-29 13:40:12 Marcin Kasprowicz
Tak, albo gdy zadeklarujesz zbyt dużą tablicę. |
|
2013-11-29 11:42:38 Igor Czeczot
SIGSEGV odnosi sie do przekroczenia zakresu tablicy? |