아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Grąža

시간 제한1초메모리 제한1024 MB

요약
투입된 지폐를 추적하고 각 음수 요청마다 2의 거듭제곱으로 최소 개수의 거스름돈을 출력한다.
난이도

보통10점 중 4점

유형
그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

Bitlandijos prekybos tinklas „Baxima“ nori modernizuoti savo parduotuves ir įrengti išmanius kasos aparatus. Vienas iš išmaniosios kasos komponentų yra robotas, gebantis automatiškai grąžinti grąžą bitais (Bitlandijos valiuta).

Bitų banknotai turi šiuos nominalus: 1,2,4,8,16,32,64,128,256,512,10241, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024.

Dienos pradžioje kasa yra tuščia. Toliau yra registruojamos visos transakcijos: į kasą įdedamų banknotų nominalai. Trūksta tik programinės įrangos, kuri suskaičiuotų, kaip geriausia parinkti grąžą kiekvienam klientui.

Parašykite progamą, kuri rastų, kokiais nominalais robotas turi duoti grąžą, kad kiekvienam klientui būtų atiduodama kuo mažiau banknotų.

입력

Pirmoje eilutėje įrašytas transakcijų skaičius TT. Sekančiose TT eilučių įrašyta po vieną skaičių t_it\_i:

  • Jei t_i>0t\_i > 0, tai jis bus lygus vienam iš galimų Bito valiutos nominalų, ir reiškia, kad į kasą įdedamas šio nominalo banknotas.
  • Jei t_i<0t\_i < 0, tai reiškia, jog klientui reikalinga grąža, ir iš kasos reikia išimti atitinkamus banknotus.

출력

Kiekvienai grąžos transakcijai (t_i<0t\_i < 0), jūs turite išvesti po eilutę, kurioje būtų įrašyti grąžai panaudoti banknotai, nuo didžiausio iki mažiausio. Nepamirškite, jog robotas turi grąžinti pinigus taip, kad banknotų skaičius būtų kuo mažesnis.

Laikykite, kad kasoje visuomet bus pakankamai banknotų, kad pavyktų duoti grąžą klientui.

제한

  • 1≤T≤1,0001 ≤ T ≤ 1\\,000
  • −106≤t_i<0-10^6 ≤ t\_i < 0 arba t_i∈1,2,4,8,16,32,64,128,256,512,1024t\_i ∈ \\{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024\\}.

예제1

  1. 예제 1

    입력
    10
    8
    8
    16
    4
    4
    -20
    4
    -16
    1
    -5
    
    예상 출력
    16 4
    8 8
    4 1