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 T> inline void walloc1d(T **arr, int x1, int x2, void **mem = &wmem){
  13. walloc1d(arr, x2-x1, mem);
  14. (*arr) -= x1;
  15. }
  16. template<class T, class S> int LIS_ends(int n, T a[], S res[], void *mem = wmem){
  17. int i;
  18. int k;
  19. int sz;
  20. T*arr;
  21. if(n==0){
  22. return 0;
  23. }
  24. walloc1d(&arr, n, &mem);
  25. arr[0] = a[0];
  26. res[0] = 1;
  27. sz = 1;
  28. int cTE1_r3A = n;
  29. for(i=(1);i<(cTE1_r3A);i++){
  30. k = lower_bound(arr, arr+sz, a[i]) - arr;
  31. arr[k] = a[i];
  32. res[i] = k + 1;
  33. if(sz==k){
  34. sz++;
  35. }
  36. }
  37. return sz;
  38. }
  39. template<class S, class T> inline S chmin(S &a, T b){
  40. if(a>b){
  41. a=b;
  42. }
  43. return a;
  44. }
  45. #define main dummy_main
  46. int main(){
  47. wmem = memarr;
  48. return 0;
  49. }
  50. #undef main
  51. int A[1000];
  52. int rg[1000];
  53. int lf[1000];
  54. class Solution{
  55. public:
  56. int minimumMountainRemovals(vector<int>& nums){
  57. int i, k;
  58. dummy_main();
  59. int N = nums.size();
  60. int res = 1073709056;
  61. for(i=(0);i<(N);i++){
  62. A[i] = nums[i];
  63. }
  64. LIS_ends(N, A, lf);
  65. reverse(A, A+N);
  66. LIS_ends(N, A, rg);
  67. reverse(rg, rg+N);
  68. for(k=(0);k<(N);k++){
  69. if(lf[k] > 1 && rg[k] > 1){
  70. chmin(res, N + 1 - lf[k] - rg[k]);
  71. }
  72. }
  73. return res;
  74. }
  75. }
  76. ;
  77. // cLay version 20201206-1
  78.  
  79. // --- original code ---
  80. // #define main dummy_main
  81. // {}
  82. // #undef main
  83. //
  84. // int A[1000];
  85. // int rg[1000], lf[1000];
  86. //
  87. // class Solution {
  88. // public:
  89. // int minimumMountainRemovals(vector<int>& nums) {
  90. // dummy_main();
  91. // int N = nums.size(), res = int_inf;
  92. // rep(i,N) A[i] = nums[i];
  93. // LIS_ends(N, A, lf);
  94. // reverse(A, A+N);
  95. // LIS_ends(N, A, rg);
  96. // reverse(rg, rg+N);
  97. // rep(k,N) if(lf[k] > 1 && rg[k] > 1) res <?= N + 1 - lf[k] - rg[k];
  98. // return res;
  99. // }
  100. // };
  101.  
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