Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FR_18_09 - Zakres czujnika

Elektronika; grafika na potrzeby zadania, zrodlo: https://pl.wikipedia.org/wiki/Elektronika#/media/Plik:Arduino_ftdi_chip-1.jpg

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łowego50000B
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.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.