#include #include long int mocnina(int n){ int mocnica = 1; int i; for(i = 0; i < n; i++){ mocnica = mocnica * 3; } return mocnica; } int zmestiSA(int n, int x){ if(mocnina(n) <= x){ return 1; } return 0; } void vyrieVstup(long int max){ if(max==0){ printf("%d\n",0); return; } long int i = 0; long int x; while(zmestiSA(i, max)){ i++; } i--; x=i; long int *vys = (long int*)malloc(sizeof(long int)* (i+1)); while(i>=0){ long int moc=mocnina(i); long int temp; temp=max/moc; vys[i]=temp; max=max-(long int)temp*moc; i--; } for(i=x;i>0;i--){ printf("%ld ",vys[i]); } printf("%ld\n",vys[0]); free((void*)vys); } int main() { long int pocetVstupov, hmotnost; long int i; scanf("%ld", &pocetVstupov); for(i = 0; i < pocetVstupov; i++){ scanf("%ld", &hmotnost); vyrieVstup(hmotnost); } return 0; }