/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package acm2014; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * * @author hulata */ public class Lode { int kapacita; Map riesenie; public static void main(String[] args){ Lode v = new Lode(); v.start(); } private void start() { Scanner in = null; try { in = new Scanner(new InputStreamReader(System.in)); int pocetTestov = in.nextInt(); for (int i = 0; i < pocetTestov; i++) { kapacita = in.nextInt(); riesenie = new HashMap<>(); ries(); vypis(); } } catch (Exception e) { e.printStackTrace(); } } public void ries() { int vaha=0; int velkost=1; int pocet=0; while(vaha<=kapacita){ vaha=dajVahu(velkost); velkost++; } velkost--; velkost--; vaha = dajVahu(velkost); pocet = kapacita / vaha; kapacita -=vaha*pocet; riesenie.put(velkost, pocet); while(kapacita!=0){ velkost--; vaha = dajVahu(velkost); if(vaha<=kapacita){ pocet = kapacita/vaha; kapacita-=vaha*pocet; riesenie.put(velkost, pocet); } } } public int dajHodnotu(int velkost) { int pocetLinkov=0; int pocetBodov=1; if(velkost==1)return 1; for (int i = 0; i < velkost-1; i++) { pocetLinkov = pocetLinkov*3+pocetBodov*2; pocetBodov = pocetBodov*3; } return pocetBodov+pocetLinkov; } public int dajVahu(int velkost) { int pocetLinkov=0; int pocetBodov=1; if(velkost==1)return 1; for (int i = 0; i < velkost-1; i++) { pocetBodov = pocetBodov*3; } return pocetBodov; } private void vypis() { int max=0; for (Map.Entry entry : riesenie.entrySet()) { Integer integer = entry.getKey(); Integer integer1 = entry.getValue(); if(integer>max){ max = integer; } } for (int i = max; i > 0; i--) { Integer pocet = riesenie.get(i); if(pocet==null){ System.out.print("0 "); }else if(i!=1){ System.out.print(pocet+" "); }else{ System.out.print(pocet); } } System.out.println(""); } }