Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: spammer_destroyer
Problemset: เลขฐานเบญจภาคได้ดุล
Language: cpp
Time: 0.004 second
Submitted On: 2025-11-04 16:19:05
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> save(22003,(vector<int>(6)));
int I=0;
void f(int n, vector<int>& blank) {
int i,j;
if(n==0) {
for(i=0;i<blank.size();i++) {
// cout<<blank[i]<<" ";
save[I][i]=blank[i];
}
// cout << "\n";
I++;
return;
}
for(i=-2;i<=2;i++) {
blank[n-1]=i;
f(n-1,blank);
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int i,j,n;
vector<int> blank(6);
cin >> n;
vector<int> in(n);
vector<bool> iszero(n,false);
f(6,blank);
for(i=0;i<n;i++) {
cin >> in[i];
if(in[i]==0){iszero[i]=true;}
}
//7812 is get from
//2×5⁰+2×5¹+2×5²+...+2×5⁵=7812
//9 means must be deleted
//8 means it is 0 and must print 0
for(i=0;i<n;i++) {
if(iszero[i]==true) {
cout << "0\n";continue;
}
for(j=5;j>=0;j--) {
if(save[in[i]+7812][j]!=0){break;}
save[in[i]+7812][j]=9;
}
for(j=0;j<6;j++) {
if(save[in[i]+7812][j]!=9) {
cout << save[in[i]+7812][j] << " ";
}
}
cout <<"\n";
}
return 0;
}