#include #define MAX 20 int pole[MAX]; int rec( int cap ) { if( cap <= 0 ) return 1; int i, mul = 1; for( i = 1; ; i++ ) { if( mul*3 > cap ) break; mul *= 3; } int r = rec( cap - mul ); //printf("%d %d\n", mul,i); pole[i-1]++; } int main() { int N,Ni; scanf("%d", &N);// test cases for( Ni = 0; Ni < N; Ni++ ) { for(int i = 0; i < 10; i++ ) pole[i] = 0; int cap; //capacity int result; scanf("%d", &cap); result = rec(cap); char flag = 0; for(int i = MAX-1; i >= 0; i-- ) { if( flag == 0 && pole[i] != 0 ) flag = 1; if(flag) printf("%d ", pole[i]); } printf("\n"); } return 0; }