比赛 |
20111111 |
评测结果 |
AAAAAAAAAA |
题目名称 |
吉祥数 |
最终得分 |
100 |
用户昵称 |
Makazeu |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-11 09:31:08 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int N;
int M=0;
int Time=2;
int A[201];
void init()
{
scanf("%d\n",&N);
int tmp;
while(cin>>tmp)
{
A[++M]=tmp;
}
return;
}
int sq(int num)
{
int rs=1;
for (int i=1;i<=Time;i++)
rs*=num;
return rs;
}
int GetTot(int num)
{
int rs=0;
int tmp[100]={0};
int top=0;
while(num)
{
tmp[++top]=num%10;
num/=10;
}
for (int i=1;i<=top;i++)
rs+=sq(tmp[i]);
return rs;
}
int cmp(const void *a,const void *b)
{
return *((int *)a)-*((int *)b);
}
void works()
{
int lun=0;
while(lun<N)
{
int tmp[201]={0};
for (int i=1;i<=M;i++)
{
if(A[i]==-1)
tmp[i]=-1;
else
tmp[i]=GetTot(A[i]);
}
for (int i=1;i<=M;i++)
{
if(A[i]==-1)
continue;
for (int j=1;j<=M;j++)
{
if(tmp[j]==-1)
continue;
if(tmp[j]==A[i])
{
A[i]=-1;
break;
}
}
}
Time++;
lun++;
}
int Tmp[201]={0};
int top=0;
for (int i=1;i<=M;i++)
{
if(A[i]==-1)
continue;
Tmp[++top]=A[i];
}
if(top==0)
return;
qsort(Tmp+1,top,sizeof(Tmp[0]),cmp);
for (int i=1;i<top;i++)
cout<<Tmp[i]<<" ";
cout<<Tmp[top]<<endl;
return;
}
int main()
{
freopen("ghillie.in","r",stdin);
freopen("ghillie.out","w",stdout);
init();
works();
return 0;
}