Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: qweqwe
Problemset: เลขฐานเบญจภาคได้ดุล
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-21 10:28:28
#include <bits/stdc++.h>
#define speed cin.tie(0)->sync_with_stdio(0)
#define ll long long
#define pii pair<int,int>
using namespace std;
vector<int> expo={1,5,25,125,625,3125,15625};
int main(){
speed;
int n;cin >> n;
for (int i=0;i<n;i++){
int x;cin >> x;
int idx=0;
bool neg=0;
if (x<0) neg=1;
x=abs(x);
for (int i=0;i<7;i++){
if (x<=expo[i]){
idx=i;break;
}
}
vector<int> base(idx+1,0);
while (idx>=0){
if (idx==0 && abs(x)<=2){
base[idx]=x;break;
}
if (2*x>=expo[idx+1]){
x-=expo[idx+1];
base[idx+1]=1;
}else if (2*x<=-expo[idx+1]){
x+=expo[idx+1];
base[idx+1]=-1;
}
if ((3*expo[idx])/2<x){
x-=2*expo[idx];
base[idx]=2;
}else if (-(3*expo[idx])/2>x){
x+=2*expo[idx];
base[idx]=-2;
}
idx--;
}
base[0]=x;
bool print=0;
vector<int> temp;
for (int i=base.size()-1;i>=0;i--){
if (base[i]!=0) print=1;
if (print){
if (neg) temp.push_back(-base[i]);
else temp.push_back(base[i]);
}
}
reverse(temp.begin(),temp.end());
for (int i:temp){
cout << i << " ";
}cout << "\n";
}
return 0;
}