#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int N=1000;
int m;
int a[N+7];
int b[N+7];
int c[N+7];
int main()
{
while(scanf("%d",&m)!=EOF)
{
int len=0;
memset(a,0,sizeof a);
memset(b,0,sizeof b);
int tmp=m;
while(tmp)
{
a[len++]=tmp%3;
tmp/=3;
}
int coun=0;
for(int i=0;i<len;i++)
{
if(a[i]==0&&coun==0)
{
b[i]=0;
}
else if(a[i]==2&&coun)
{
b[i]=0;
coun=1;
}
else if(a[i]==1&&coun)
{
b[i]=1;
coun=1;
}
else if(a[i]==0&&coun==1)
{
b[i]=0;
coun=0;
}
else if(a[i]==2&&coun==0)
{
b[i]=1;
coun=1;
}
else if(a[i]==1&&coun==0)
{
b[i]=0;
coun=0;
}
}
// for(int i=len-1;i>=0;i--)
// {
// printf("%d",a[i]);
// }
// puts("");
//
// for(int i=len-1;i>=0;i--)
// {
// printf("%d",b[i]);
// }
// puts("");
coun=0;
int ll=0;
for(int i=0;i<len;i++)
{
int tmp=0;
tmp=a[i]+b[i]+coun;
if(tmp==3)
{
coun=1;
c[i]=0;
}
else if(tmp==0)
{
c[i]=0;
coun=0;
}
else
{
c[i]=1;
coun=0;
}
}
if(coun)
{
ll=len+1;
c[len]=1;
}
else
ll=len;
vector<int >ve;
int bas=1;
for(int i=0;i<len;i++)
{
if(b[i])
ve.push_back(bas);
bas*=3;
}
printf("%d",ve.size());
for(int i=0;i<ve.size();i++)
{
printf(" %d",ve[i]);
}
puts("");
ve.clear();
bas=1;
for(int i=0;i<ll;i++)
{
if(c[i])
ve.push_back(bas);
bas*=3;
}
printf("%d",ve.size());
for(int i=0;i<ve.size();i++)
{
printf(" %d",ve[i]);
}
puts("");
}
return 0;
}
tjut 3029
最新推荐文章于 2019-01-27 21:10:00 发布