Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
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:
- Struktura pierwsza (stos): element, który jako ostatni został dodany, jako pierwszy będzie zdjęty i usunięty ze struktury, itd..
- Struktura druga (kolejka FIFO): element, który jako pierwszy został dodany, jako pierwszy będzie zdjęty i usunięty ze struktury, itd.
- Struktura trzecia (kolejka priorytetowa): element, który ma największą wartość, będzie zdjęty jako pierwszy i usunięty ze struktury, itd.
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ą.
Wejście
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].
Wyjście
Na wyjściu wypisujemy przykładowe pierwotne ustawienie elementów tablicy.
Przykład
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
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2017-04-07 |
Limit czasu wykonania programu: | 1s-2s |
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 |