Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
FR_18_09 - Zakres czujnika |
Rozpatrzmy czujnik, który udostępnia rejestr b-bitowy, w celu przechowania ciągłego zakresu liczb całkowitych. Zakres ten będzie możliwie symetryczny względem zera w przypadku, gdy ciąg zawiera liczby ujemne i nieujemne albo będzie zaczynał się od zera w przypadku, gdy ciąg zawiera tylko liczby nieujemne. Jeżeli rejestr ma przechowywać zarówno wartości ujemne jak i nieujemne to najbardziej znaczący bit jest używany do przechowywania znaku (1 – ujemna, 0 – nieujemna).
Twoim zadaniem jest określenie minimalnej i maksymalnej wartości jaką może przechować rejestr czujnika, a także wypisanie kolejnych bitów jakie znajdą się w rejestrze po zapisaniu w nim pewnej wartości x.
Wejście
Na wejściu podana zostanie liczba testów t (t < 105). Następnie, w kolejnych t liniach, rozdzielone spacjami, kolejno:
- wartość b (1 ≤ b ≤ 64)
- napis "SIGNED" albo "UNSIGNED", oznaczający charakter mierzonej wielkości (w pierwszym przypadku odczyt może być dodatni bądź ujemny, a w drugim wyłącznie nieujemny)
- liczba całkowita x (|x| < 264)
Jeżeli na wejściu podany został napis "SIGNED", gwarantuję, że b > 1.
Wyjście
Na wyjściu, w kolejnych liniach dla każdego testu, należy podać najmniejszą i największą liczbę możliwą do przechowania przy użyciu b bitów w rejestrze, z uwzględnieniem informacji o konieczności przechowania znaku. Następnie należy wyświetlić bity odpowiadające liczbie x lub napis "Ups", jeżeli w danej sytuacji liczba ta nie zmieści się w rejestrze.
Sposób, w jaki należy interpretować kolejne ciągi bitów, wynika jednoznacznie z treści przykładu i specyfikacji zadania.
Przykład
Wejście:
8 2 SIGNED -3 2 SIGNED -2 2 SIGNED 0 2 SIGNED 1 2 SIGNED 2 2 UNSIGNED 0 2 UNSIGNED 1 2 UNSIGNED 3
Wyjście:
-2 1 Ups -2 1 11 -2 1 00 -2 1 01 -2 1 Ups 0 3 00 0 3 01 0 3 11
Dodane przez: | anonimowy |
Data dodania: | 2023-12-30 |
Limit czasu wykonania programu: | 3s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: GOSU |
ukryj komentarze
2024-02-08 12:10:10 Piotr Dobosiewicz
Mylisz się, podpowiedź: -3 - nie mieści się w zakresie dwóch bitów. -2 - 11 -1 - 10 0 - 00 1 - 01 rozpisz sobie 3 SIGNED X gdzie X <-4, 3> to coś zauważysz. Nie chcę za dużo podpowiadać, bo popsuję innym zabawę :)) |
|
2024-02-06 22:28:49
Sądzę iż autor właśnie wykorzystuje system u2: -3 - nie mieści się w zakresie dwóch bitów. -2 - 10 -1 - 11 0 - 00 1 - 01 Nie wiem może się mylę. Ostatnio edytowany: 2024-02-06 22:29:41 |
|
2024-01-23 19:41:42 Piotr Dobosiewicz
Idąc twoim tokiem myślenia 10 nie byłoby najmniejszą wartością, bo mogłoby być jeszcze 11, czyli jeśli się nie mylę, po twojemu -3. Wydaje mi się, że autor zrobił swój zapis liczb ujemnych i to nawet trochę inny niż U1 czy U2. |
|
2024-01-15 00:54:30
Dla przykładu 2 SIGNED -2 jest chyba błąd - zamiast -2 1 11 powinno być -2 1 10 -2 w systemie binarnym to 10. |