fork(1) download
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5.  
  6. long long potegowanie(long long c, long long d)
  7. {
  8.  
  9. long long *a;
  10. a=new long long [d];
  11. for(long long i=1 ; i<=d; i++)
  12. {
  13. if (i<2)
  14. *(a+1)=c;
  15. else
  16. *(a+i)=*(a+i-1)*(*(a+1));
  17. if(i==d)
  18. c=*(a+i);
  19. }
  20. delete [] a;
  21. return c;
  22. }
  23.  
  24.  
  25.  
  26.  
  27. int main()
  28. {
  29.  
  30.  
  31. long long b=1;
  32. long long p=0;
  33. long long d,l;
  34. long long q,f,n,g;
  35.  
  36.  
  37. cin >>n;
  38. long long *a;
  39. a=new long long[n];
  40.  
  41. for(long long i=1; i<=n; i++)
  42. {
  43. if (i<4)
  44. g=3;
  45. if(i<=2)
  46. {
  47.  
  48. if(i<2)
  49. {
  50. *(a+i)=(5*b);
  51. }
  52. else
  53. {
  54. *(a+i)=*(a+i-1)+b;
  55. }
  56. }
  57. else
  58. {
  59. l = potegowanie(2,(i-1));
  60. d=0;
  61. for(long long s=1; s<=l; s++)
  62. {
  63. if((d==(l/2)) )
  64. p=p-(p/2);
  65. else
  66. p++;
  67. f = potegowanie(10,(i-2));
  68.  
  69. *(a+g) = (*(a+1+(s/((l+2)/2))) * f )+ (*(a+p));
  70.  
  71. if(g==n)
  72. {
  73. q=*(a+g);
  74. break;
  75. }
  76.  
  77. else
  78. {
  79. g++;
  80. d++;
  81. }
  82.  
  83. }
  84.  
  85. }
  86. if(i<3)
  87. q=*(a+i);
  88. if(g==n )
  89. break;
  90.  
  91. }
  92.  
  93. cout <<setprecision(1000000000);
  94. cout <<q<<endl;
  95. delete [] a;
  96. return 0;
  97. }
Success #stdin #stdout 0s 4596KB
stdin
1
10
12345
stdout
5