Logo
(追記) (追記ここまで)

8562번 - Rozkłady dwójkowe 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB157746.667%

문제

Rozkładem dwójkowym liczby n nazywamy ciąg "cyfr" akak-1...a1a0, taki że

  1. każda z cyfr a0, a1, ..., ak jest równa 1, 0 lub -1;
  2. najbardziej znacząca cyfra w rozkładzie, czyli ak, jest różna od zera;
  3. n = ak·2k + ak-1·2k-1 + ... + a1·2 + a0.

Można łatwo zauważyć, że liczba może mieć wiele różnych rozkładów dwójkowych. Spośród tych wszystkich rozkładów, optymalnymi nazwiemy te, które mają najmniejszą liczbę cyfr niezerowych. Na przykład, rozkładami dwójkowymi liczby 15 są: 10001, 1111 i 10011 (dla wygody cyfrę -1 oznaczyliśmy tu jako 1). Pierwszy z tych rozkładów jest rozkładem optymalnym dla 15.

Twoim zadaniem jest napisanie programu, który obliczy, jaka jest liczba cyfr niezerowych w optymalnym rozkładzie dwójkowym podanej liczby.

입력

Program powinien czytać dane ze standardowego wejścia. W pierwszym wierszu danych podana jest liczba r (1 ≤ r ≤ 500). W drugim wierszu podana jest liczba dziesiętna n złożona z r cyfr. Liczba n jest zapisana począwszy od najbardziej znaczących cyfr (tzn. tradycyjnie) i rozpoczyna się od cyfry różnej od zera.

출력

Program powinien pisać wynik na wyjście standardowe. Wynikiem powinna być liczba oznaczająca liczbę cyfr niezerowych w optymalnym rozkładzie dwójkowym liczby n.

제한

예제 입력 1

2
15

예제 출력 1

2

힌트

출처

Contest > Algorithmic Engagements > PA 2001 3-2번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /