fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. #define main dummy_main
  5. int main(){
  6. return 0;
  7. }
  8. #undef main
  9. int ast;
  10. int aed;
  11. int a[3000];
  12. int bst;
  13. int bed;
  14. int b[3000];
  15. class FrontMiddleBackQueue{
  16. public:
  17. FrontMiddleBackQueue(){
  18. ast = aed = bst = bed = 1500;
  19. }
  20. void doit(void){
  21. int i;
  22. while(aed - ast > bed - bst){
  23. i = a[--aed];
  24. b[--bst] = i;
  25. }
  26. while(aed - ast < bed - bst - 1){
  27. i = b[bst++];
  28. a[aed++] = i;
  29. }
  30. }
  31. void pushFront(int val){
  32. a[--ast] = val;
  33. }
  34. void pushMiddle(int val){
  35. doit();
  36. a[aed++] = val;
  37. }
  38. void pushBack(int val){
  39. b[bed++] = val;
  40. }
  41. int popFront(){
  42. if(aed - ast > 0){
  43. return a[ast++];
  44. }
  45. if(bed - bst > 0){
  46. return b[bst++];
  47. }
  48. return -1;
  49. }
  50. int popMiddle(){
  51. doit();
  52. if(aed - ast == bed - bst && bed - bst == 0){
  53. return -1;
  54. }
  55. if(aed - ast == bed - bst){
  56. return a[--aed];
  57. }
  58. return b[bst++];
  59. }
  60. int popBack(){
  61. if(bed - bst > 0){
  62. return b[--bed];
  63. }
  64. if(aed - ast > 0){
  65. return a[--aed];
  66. }
  67. return -1;
  68. }
  69. }
  70. ;
  71. // cLay version 20201206-1
  72.  
  73. // --- original code ---
  74. // #define main dummy_main
  75. // {}
  76. // #undef main
  77. //
  78. // int ast, aed, a[3000], bst, bed, b[3000];
  79. //
  80. // class FrontMiddleBackQueue {
  81. // public:
  82. // FrontMiddleBackQueue() {
  83. // ast = aed = bst = bed = 1500;
  84. // }
  85. //
  86. // void doit(void){
  87. // int i;
  88. // while(aed - ast > bed - bst){
  89. // i = a[--aed];
  90. // b[--bst] = i;
  91. // }
  92. // while(aed - ast < bed - bst - 1){
  93. // i = b[bst++];
  94. // a[aed++] = i;
  95. // }
  96. // }
  97. //
  98. // void pushFront(int val) {
  99. // a[--ast] = val;
  100. // }
  101. // void pushMiddle(int val) {
  102. // doit();
  103. // a[aed++] = val;
  104. // }
  105. // void pushBack(int val) {
  106. // b[bed++] = val;
  107. // }
  108. //
  109. // int popFront() {
  110. // if(aed - ast > 0) return a[ast++];
  111. // if(bed - bst > 0) return b[bst++];
  112. // return -1;
  113. // }
  114. // int popMiddle() {
  115. // doit();
  116. // if(aed - ast == bed - bst == 0) return -1;
  117. // if(aed - ast == bed - bst) return a[--aed];
  118. // return b[bst++];
  119. // }
  120. // int popBack() {
  121. // if(bed - bst > 0) return b[--bed];
  122. // if(aed - ast > 0) return a[--aed];
  123. // return -1;
  124. // }
  125. // };
  126.  
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