Files
Landon Curt Noll f29b37e49a improve HTML menus, add social.html, prep for IOCCC28 winners
Prepare for the winners of **IOCCC28**.

> However these are not the 2024 droids you are looking for.  :-)

The HTML menu (both JavaScript and non-JavaScript) has been updated.

The `Status -> Rules and guidelines' have been replaced with two
separate menus `Status -> IOCCC rules` and `Status -> IOCCC guidelines`.

Added a new top level `social.html` page: built from a new `social.md`.

Sorted rules for building specific web pages in the top level `Makefile`.
Added `make social` to make the `social.html` page from `social.md`.

The `bin/gen-top-html.sh` now is able to process a argument of **social**
to process the new top level `social.html` page.

Changed `bin/gen-top-html.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-07-25".

Below `About -> Home page` a new `About -> IOCCC social media` menu item
as added.

Because the menu change touched every HTML file, we changed the general
copyright date range for HTML files from "1984-2024" to "1984-2025"
due to the extensive changes made for **IOCCC28**.

Those markdown files that were modified in 2025 had their copyright date
range also changed from "1984-2024" to "1984-2025".

Rebuilt tarballs and sitemap due to the extensive HTML rebuilding.

Ran `make update` to perform the above.
2025-07-26 13:06:29 -07:00

144 lines
5.0 KiB
Markdown

## To build:
``` <!---sh-->
make all
```
There is an alternate version for those using Turbo-C or MSC. See [alternate
code](#alternate-code) below for details.
### Bugs and (Mis)features:
The current status of this entry is:
> **STATUS: INABIAF - please DO NOT fix**
For more detailed information see [1990/baruch in bugs.html](../../bugs.html#1990_baruch).
## To use:
``` <!---sh-->
echo 4 | ./baruch
echo 7 | ./baruch
```
## Try:
``` <!---sh-->
./try.sh
```
## Alternate code:
This alternate code is for the [very few](https://en.wikipedia.org/wiki/0)
[users](https://en.wikipedia.org/wiki/Microsoft_Windows)
[here](https://www.ioccc.org) who will need it. Nonetheless if you're using
Turbo-C or MSC, the code is available, based on the authors' remarks except that
the `" #Q"` string was not changed as that showed worse looking output instead
of improved output though admittedly we have no way to test the compilers in
question. YMMV.
### Alternate build:
``` <!---sh-->
make alt
```
### Alternate use:
Use `baruch.alt` as you would `baruch`.
## Judges' remarks:
This program reads an integer between 4 and 99 from the `stdin`.
It is advisable to commence with relatively small integers, as the
duration and quantity of output can become substantial as the input
integer increases.
For instance, on a relatively generic computer in 2025, the following
execution times and output quantities were recorded:
```
| input | clock | user | system | lines of |
| value | time | time | time | output |
|-------|---------------------|---------------------|------------------|--------------|
| 4 | 0.001s | 0.001s | 0.001s | 11 |
| 5 | 0.002s | 0.001s | 0.002s | 61 |
| 6 | 0.002s | 0.002s | 0.002s | 29 |
| 7 | 0.003s | 0.002s | 0.002s | 321 |
| 8 | 0.003s | 0.002s | 0.003s | 829 |
| 9 | 0.006s | 0.004s | 0.006s | 3521 |
| 10 | 0.016s | 0.014s | 0.006s | 7965 |
| 11 | 0.071s | 0.068s | 0.008s | 32161 |
| 12 | 0.419s | 0.418s | 0.014s | 184601 |
| 13 | 2.589s | 2.564s | 0.075s | 1031969 |
| 14 | 16.509s | 16.457s | 0.331s | 5483941 |
| 15 | 1m 55.913s | 1m 55.173s | 2.397s | 36466945 |
| 16 | 14m 7.307s | 14m 2.427s | 16.652s | 251132705 |
| 17 | 1h 49m 37.938s | 1h 48m 59.355s | 2m 2.812s | 1724671873 |
| 18 | 14h 58m 13.506s | 14h 50m 22.572s | 14m 33.652s | 12655721857 |
| 19 | 5d 6h 9m 59.983s | 5d 5h 18m 31.147s | 2h 9m 29.490s | 99361156961 |
| 20 | 46d 9h 23m 23.095s | 46d 3h 31m 11.600s | 17h 58m 55.478s | 819612966565 |
```
**NOTE**: The original program did not have a newline at the end of the file. We
added a final newline to the file to make unpacking easy.
## Authors' remarks:
The goal of this work was to write a program that solves the classic [n-queens
problem](https://en.wikipedia.org/wiki/Eight_queens_puzzle), with a board size
of up to 99x99, while keeping the program as short as possible.
The program finds all possibilities to place N chess queens on an NxN
[chessboard](https://en.wikipedia.org/wiki/Chessboard) so that no queen is in
range of any other queen (not in the same column row or diagonal). For each
solution the chess board and the place of the queens is printed to stdout.
This program is about as simple and as readable as possible. To make things
even more simple we used a very limited subset of C:
- No pre-processor statements
- Only one, harmless, `for` statement
- No `if`s
- No `break`s
- No `case`s
- No functions outside the standard C library
- No `goto`s
- No structures
In short, it contains no C language that might confuse the innocent reader. :-)
This program demonstrates the claim that in C, any program can be written using
a single 'for' statement, as long as it is long enough.
### For PC users:
In order to compile the program under Turbo-C or MSC, `int ` should be inserted
at the beginning of the program. For better looking results it is recommended
to replace the `" #Q"` string with `" \261\2"`.
<!--
Copyright © 1984-2025 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/
-->