fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. void *wmem;
  5. char memarr[96000000];
  6. template<class T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
  7. static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  8. (*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
  9. (*arr)=(T*)(*mem);
  10. (*mem)=((*arr)+x);
  11. }
  12. template<class T1> void sortA_L(int N, T1 a[], void *mem = wmem){
  13. sort(a, a+N);
  14. }
  15. template<class T1, class T2> void sortA_L(int N, T1 a[], T2 b[], void *mem = wmem){
  16. int i;
  17. pair<T1, T2> *arr;
  18. walloc1d(&arr, N, &mem);
  19. for(i=(0);i<(N);i++){
  20. arr[i].first = a[i];
  21. arr[i].second = b[i];
  22. }
  23. sort(arr, arr+N);
  24. for(i=(0);i<(N);i++){
  25. a[i] = arr[i].first;
  26. b[i] = arr[i].second;
  27. }
  28. }
  29. template<class S> inline void arrInsert(const int k, int &sz, S a[], const S aval){
  30. int i;
  31. sz++;
  32. for(i=sz-1;i>k;i--){
  33. a[i] = a[i-1];
  34. }
  35. a[k] = aval;
  36. }
  37. template<class S, class T> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval){
  38. int i;
  39. sz++;
  40. for(i=sz-1;i>k;i--){
  41. a[i] = a[i-1];
  42. }
  43. for(i=sz-1;i>k;i--){
  44. b[i] = b[i-1];
  45. }
  46. a[k] = aval;
  47. b[k] = bval;
  48. }
  49. template<class S, class T, class U> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval, U c[], const U cval){
  50. int i;
  51. sz++;
  52. for(i=sz-1;i>k;i--){
  53. a[i] = a[i-1];
  54. }
  55. for(i=sz-1;i>k;i--){
  56. b[i] = b[i-1];
  57. }
  58. for(i=sz-1;i>k;i--){
  59. c[i] = c[i-1];
  60. }
  61. a[k] = aval;
  62. b[k] = bval;
  63. c[k] = cval;
  64. }
  65. template<class S, class T, class U, class V> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval, U c[], const U cval, V d[], const V dval){
  66. int i;
  67. sz++;
  68. for(i=sz-1;i>k;i--){
  69. a[i] = a[i-1];
  70. }
  71. for(i=sz-1;i>k;i--){
  72. b[i] = b[i-1];
  73. }
  74. for(i=sz-1;i>k;i--){
  75. c[i] = c[i-1];
  76. }
  77. for(i=sz-1;i>k;i--){
  78. d[i] = d[i-1];
  79. }
  80. a[k] = aval;
  81. b[k] = bval;
  82. c[k] = cval;
  83. d[k] = dval;
  84. }
  85. #define main dummy_main
  86. int main(){
  87. wmem = memarr;
  88. return 0;
  89. }
  90. #undef main
  91. int getpw(long long n){
  92. int res = 0;
  93. while(n != 1){
  94. res++;
  95. if(n%2==0){
  96. n =n/2;
  97. }
  98. else{
  99. n =3*n+1;
  100. }
  101. }
  102. return res;
  103. }
  104. int sz;
  105. int val[1000];
  106. int ind[1000];
  107. class Solution{
  108. public:
  109. int getKth(int lo, int hi, int k){
  110. int i;
  111. dummy_main();
  112. sz = 0;
  113. for(i=(lo);i<(hi+1);i++){
  114. arrInsert(sz, sz, val, getpw(i), ind, i);
  115. }
  116. sortA_L(sz,val,ind);
  117. return ind[k-1];
  118. }
  119. }
  120. ;
  121. // cLay varsion 20200325-1
  122.  
  123. // --- original code ---
  124. // #define main dummy_main
  125. // {}
  126. // #undef main
  127. //
  128. // int getpw(ll n){
  129. // int res = 0;
  130. // while(n != 1){
  131. // res++;
  132. // n = if[n%2==0, n/2, 3*n+1];
  133. // }
  134. // return res;
  135. // }
  136. //
  137. // int sz, val[1000], ind[1000];
  138. //
  139. // class Solution {
  140. // public:
  141. // int getKth(int lo, int hi, int k) {
  142. // dummy_main();
  143. // sz = 0;
  144. // rep(i,lo,hi+1) arrInsert(sz, sz, val, getpw(i), ind, i);
  145. // sortA(sz,val,ind);
  146. // return ind[k-1];
  147. // }
  148. // };
  149.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty