记录编号 110662 评测结果 AAAAAAAAAAAAAA
题目名称 [暑假培训2012] 残酷的数学老师 最终得分 100
用户昵称 Gravatarwolf 是否通过 通过
代码语言 C++ 运行时间 0.874 s
提交时间 2014-07-12 10:04:55 内存使用 0.32 MiB
显示代码纯文本
  1. #include<iostream>
  2. #include<vector>
  3. #include<cstdio>
  4. #include<fstream>
  5. using namespace std;
  6. FILE *in,*out;
  7. vector<int> source;
  8. vector<int> end;
  9. void core(){
  10. vector<int> number;
  11. number.resize(source.size()+end.size(),0);
  12. for(int i=0;i!=source.size();++i){
  13. for(int k=0;k!=end.size();++k){
  14. number[i+k]+=source[i]*end[k];
  15. }
  16. }
  17. end=number;
  18. }
  19. void work(){
  20. for(int i=0;i!=end.size();++i){
  21. int e=end[i];
  22. end[i]=e%10;
  23. if(e>9){
  24. if(end.size()==i+1)
  25. end.push_back(0);
  26. end[i+1]+=e/10;
  27. }
  28. }
  29. }
  30. int main(){
  31. in=fopen("cruel1.in","r");
  32. out=fopen("cruel1.out","w");
  33. //ifstream AA("cruel1.in");
  34. //ofstream BB("cruel1.out");
  35. long long N;int P;
  36. fscanf(in,"%lld %d",&N,&P);
  37. //AA>>N>>P;
  38. for(;N>0;){
  39. source.push_back(N%10);
  40. N=N/10;
  41. }
  42. end=source;
  43. for(int i=1;i!=P;++i){
  44. core();
  45. work();
  46. for(int i=end.size()-1;i>-1;--i){
  47. if(end[i]==0)
  48. end.pop_back();
  49. else
  50. break;
  51. }
  52. }
  53. int t=end.size()%70;
  54. bool off=0;
  55. for(int i=end.size()-1;i>-1;--i){
  56. if((i-t+1)%70==0&&off){
  57. //BB<<endl;
  58. fprintf(out,"\n");
  59. }else{
  60. off=1;
  61. }
  62. //BB<<end[i];
  63. fprintf(out,"%d",end[i]);
  64. }
  65. //BB<<endl;
  66. fprintf(out,"\n");
  67. return 0;
  68. }
  69. //desgined by wolf