比赛 20111111 评测结果 AAAAAAAAAA
题目名称 吉祥数 最终得分 100
用户昵称 血之侍卫 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 11:05:06
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cmath>
  4. #include<cstdlib>
  5. using namespace std;
  6. int c(int x,int v)
  7. {
  8. int ans=0;
  9. for(int i=0;i<3;i++)
  10. {
  11. ans+=pow(double(x%10),double(v));
  12. x=x/10;
  13. }
  14. return ans;
  15. }
  16. int cmp ( const void *a , const void *b )
  17. {
  18. return *(int *)a - *(int *)b;
  19. }
  20.  
  21. int main()
  22. {
  23. freopen("ghillie.in","r",stdin);
  24. freopen("ghillie.out","w",stdout);
  25. int n;
  26. int d[300];
  27. scanf("%d",&n);
  28. int a[300];
  29. int total=0;
  30. while(scanf("%d",&a[total])!=-1)
  31. total++;
  32. for(int i=0;i<total;i++)
  33. d[i]=a[i];
  34. for(int i=2;i<=n+1;i++)
  35. {
  36. for(int j=0;j<total;j++)
  37. {
  38. if(d[j]!=-1)
  39. {
  40. d[j]=c(d[j],i);
  41. }
  42. }
  43. for(int j=0;j<total;j++)
  44. {
  45. for(int k=0;k<total;k++)
  46. {
  47. if(d[j]==a[k])
  48. {
  49. d[j]=-1;
  50. a[k]=-1;
  51. break;
  52. }
  53. }
  54. }
  55. }
  56. qsort(a,total,sizeof(int),cmp);
  57. for(int i=0;i<total;i++)
  58. {
  59. if(a[i]!=-1)
  60. printf("%d ",a[i]);
  61. }
  62. return 0;
  63. }