fork download
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7. typedef int BigN[1000];
  8.  
  9. BigN a;
  10. BigN result;
  11.  
  12. void print(BigN num)
  13. {
  14. for(int i = num[0]; i > 0; --i)
  15. cout << num[i];
  16. cout << endl;
  17. }
  18.  
  19. int to_int(string &str)
  20. {
  21. int len = str.size();
  22. int dec = 0;
  23. for(int i=0; i < len; ++i)
  24. {
  25. dec = (dec * 10) + (str[i] - '0');
  26. }
  27.  
  28. return dec;
  29. }
  30.  
  31. void solve( string &nep, string &cds)
  32. {
  33. int nepw = to_int(nep);
  34. int count = to_int(cds);
  35. int len = nep.size();
  36. a[0] = len;
  37. for(int i = 1; i <= len; ++i)
  38. a[i] = nep[len-i] - '0';
  39.  
  40. while(--count)
  41. {
  42. int len = a[0];
  43. a[0] = 0;
  44. int c = 0;
  45. for(int i=1; i <= len || c; ++i)
  46. {
  47. int newdig = (a[i] * nepw) + c;
  48. if( newdig > 9)
  49. {
  50. a[i] = newdig % 10;
  51. c = newdig / 10;
  52. }
  53. else
  54. {
  55. a[i] = newdig;
  56. c = 0;
  57. }
  58. ++a[0];
  59. }
  60. }
  61. print(a);
  62. }
  63.  
  64. int main()
  65. {
  66. string nep, cds;
  67.  
  68. while( cin >> nep >> cds )
  69. {
  70. if(nep[0] == '0' && cds[0] == '0')
  71. break;
  72. solve(nep, cds);
  73. memset(&a, 0, sizeof(a));
  74. nep.clear();
  75. cds.clear();
  76. }
  77.  
  78. return 0;
  79. }
Time limit exceeded #stdin #stdout 5s 2820KB
stdin
1 0
0 0
stdout
Standard output is empty