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, class T> inline S chmax(S &a, T b){
  30. if(a<b){
  31. a=b;
  32. }
  33. return a;
  34. }
  35. #define main dummy_main
  36. int main(){
  37. wmem = memarr;
  38. return 0;
  39. }
  40. #undef main
  41. int x[100000];
  42. int y[100000];
  43. class Solution{
  44. public:
  45. int minTaps(int n, vector<int>& ranges){
  46. dummy_main();
  47. int res = 0;
  48. int cur = 0;
  49. int i;
  50. int mx;
  51. n++;
  52. for(i=(0);i<(n);i++){
  53. x[i] = i - ranges[i];
  54. }
  55. for(i=(0);i<(n);i++){
  56. y[i] = i + ranges[i];
  57. }
  58. sortA_L(n,x,y);
  59. i = 0;
  60. while(cur < n-1){
  61. mx = -1;
  62. while(i < n && x[i] <= cur){
  63. chmax(mx, y[i++]);
  64. }
  65. if(mx==-1){
  66. return -1;
  67. }
  68. res++;
  69. cur = mx;
  70. }
  71. return res;
  72. }
  73. }
  74. ;
  75. // cLay varsion 20200119-1
  76.  
  77. // --- original code ---
  78. // #define main dummy_main
  79. // {}
  80. // #undef main
  81. //
  82. // int x[1d5], y[1d5];
  83. //
  84. // class Solution {
  85. // public:
  86. // int minTaps(int n, vector<int>& ranges) {
  87. // dummy_main();
  88. // int res = 0, cur = 0, i, mx;
  89. // n++;
  90. // rep(i,n) x[i] = i - ranges[i];
  91. // rep(i,n) y[i] = i + ranges[i];
  92. // sortA(n,x,y);
  93. //
  94. // i = 0;
  95. // while(cur < n-1){
  96. // mx = -1;
  97. // while(i < n && x[i] <= cur) mx >?= y[i++];
  98. // if(mx==-1) return -1;
  99. // res++;
  100. // cur = mx;
  101. // }
  102. //
  103. // return res;
  104. // }
  105. // };
  106.  
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