比赛 20111111 评测结果 C
题目名称 吉祥数 最终得分 0
用户昵称 风华正茂 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 09:45:09
显示代码纯文本
#include<fstream>
#include<cmath>
using namespace std;
ifstream cin("ghillie.in");
ofstream cout("ghillie.out");
long long a[200]={-1},n,i,j,b[200],c[200],ge;
int ping(int x,int y)
{
	int i;
	for(i=1;i<y;i++)
		x=x*x;
	if(y==0)
		x=1;
	return x;
}
long long solve(int a1,int p)
{
	long long temp=0;
	temp=ping(a[a1]/100,p)+ping(a[a1]/10-a[a1]/100*10,p)+ping(a[a1]-a[a1]/10*10,p);
	return temp;
}
int cmp ( const void *a , const void *b )
{
	return *(int *)a - *(int *)b;
}
int main()
{
	cin>>n;
	for(i=0;i<200;i++)
	{
		a[i]=-1;
		cin>>a[i];
		if(a[i]==-1)
		{
			ge=i;
			break;
		}
	}
	int pan,tong;
	for(i=0;i<n;i++)
	{
		for(j=0;j<ge;j++)
		{
			b[j]=solve(j,i+2);
		}
		tong=0;
		for(int m=0;m<ge;m++)
		{
			pan=0;
			for(int q=0;q<ge;q++)
			{
				if(a[m]==b[q])
					pan=1;
			}
			if(pan==0)
			{
				c[tong]=a[m];
				tong++;
			}
		}
		ge=tong;
		for(int p=0;p<ge;p++)
			a[p]=c[p];
	}
	qsort(a,ge,sizeof(a[0]),cmp);
	for(i=0;i<ge-1;i++)
		cout<<a[i]<<" ";
	cout<<a[ge-1]<<endl;
	return 0;
}