记录编号 |
33589 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[金陵中学2007] 吉祥数 |
最终得分 |
100 |
用户昵称 |
Czb。 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2011-11-11 14:05:31 |
内存使用 |
0.26 MiB |
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
int n,m,tmp;
int a[201],f[201],t[201],cf[10][10]={
{0},
{1,1,1,1,1,1,1,1,1,1},
{1,2,4,8,16,32,64,128,256,512},
{1,3,9,27,81,243,729,2187,6561,19683},
{1,4,16,64,256,1024,4096,16384,65536,262144},
{1,5,25,125,625,3125,15625,78125,390625,1953125},
{1,6,36,216,1296,7776,46656,279936,1679616,10077696},
{1,7,49,343,2401,16807,117649,823543,5764801,40353607},
{1,8,64,512,4096,32768,262144,2097152,16777216,134217728},
{1,9,81,729,6561,59049,531441,4782969,43046721,387420489}
};
bool b[201];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
freopen("ghillie.in","r",stdin);
freopen("ghillie.out","w",stdout);
int i,j,k;
scanf("%d",&n);
while(scanf("%d",&tmp)==1)
{
m++;
a[m]=f[m]=tmp;
b[m]=true;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(b[j])
{
t[j]=0;
while(a[j])
{
t[j]+=cf[a[j]%10][i+1];
a[j]/=10;
}
a[j]=f[j];
}
}
for(j=1;j<=m;j++)
{
for(k=1;k<=m;k++)
{
if(t[j]==f[k])
{
f[k]=-1;
b[k]=false;
}
}
}
}
qsort(f+1,m,4,cmp);
for(i=1;i<=m;i++)
{
if(f[i]>=0)
{
printf("%d ",f[i]);
}
}
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}