# [C (gcc)], <s>131</s> <s>116</s> <s>90</s> 89 bytes <!-- language-all: lang-c --> L(l,a,v,A){for(A=5,v=1000;A;v-=a)printf("%d\n"+!a*2,a=--A?(l>59|A<3&l>44)*rand()%-~v:v);} [Try it online!][TIO-jlyzxfvv] [C (gcc)]: https://gcc.gnu.org/ [TIO-jlyzxfvv]: https://tio.run/##VY7NUoMwFIX3PMW1Dk4CiZMqOLYQHPbtE6iLGH6amgaH0rio@OhG0uqiuzPfPd@dI2krpbtWRupDVUO@HyrV3W6K4AJp9XbJBrWrJ@JWSBNBLCnxsel6VPKUWD5njGVlZikX@KNXZmjQLKxezCy@EtEdEZzS8gnpIl18lfn9jS6SBEe9MBXCIf22S4uz0U0a7IQyyAfRt5LIjeghiqZsMRwDgP3JkbqT7wjjbCJ@g@8rzjKIY5V7MTu3Afxly8XQKeSfPKvXkwTwP3KtzGGoIayW01gC27/zCp3TGIzOzVOXJC5JXbpwD8w9sh/ZaNHuHf38BQ "C (gcc) – Try It Online" **Update**: Fixed a bug in the original. Fused in the helper function, reducing an additional 15 bytes. **Update 2**: -25 bytes thanks to ErikF. ## Degolf L(l,a,v,A){ for(A=5,v=1000;A;v-=a) printf("%d\n"+!a*2, // No clue how this works anymore, but it'll advance the pointer // to the string constant when a number shouldn't be printed. a=--A? // Is bottom layer? (l>59|A<3&l>44)*rand()%-~v // Random integer to print in [0, 1000] :v); // If bottom layer, return remaining volume }