579
\$\begingroup\$

This "sandbox" is a place where Code Golf users can get feedback on prospective challenges they wish to post to main. This is useful because writing a clear and fully specified challenge on your first try can be difficult, and there is a much better chance of your challenge being well received if you post it in the sandbox first.

Sandbox FAQ

Posting

To post to the sandbox, scroll to the bottom of this page and click "Answer This Question". Click "OK" when it asks if you really want to add another answer.

Write your challenge just as you would when actually posting it, though you can optionally add a title at the top. You may also add some notes about specific things you would like to clarify before posting it. Other users will help you improve your challenge by rating and discussing it.

When you think your challenge is ready for the public, go ahead and post it, and replace the post here with a link to the challenge and delete the sandbox post.

Discussion

The purpose of the sandbox is to give and receive feedback on posts. If you want to, feel free to give feedback to any posts you see here. Important things to comment about can include:

  • Parts of the challenge you found unclear
  • Comments addressing specific points mentioned in the proposal
  • Problems that could make the challenge uninteresting or unfit for the site

You don't need any qualifications to review sandbox posts. The target audience of most of these challenges is code golfers like you, so anything you find unclear will probably be unclear to others.

If you think one of your posts requires more feedback, but it's been ignored, you can ask for feedback in The Nineteenth Byte. It's not only allowed, but highly recommended! Be patient and try not to nag people though, you might have to ask multiple times.

It is recommended to leave your posts in the sandbox for at least several days, and until it receives upvotes and any feedback has been addressed.

Other

Search the sandbox / Browse your pending proposals

The sandbox works best if you sort posts by active.

To add an inline tag to a proposal, use shortcut link syntax with a prefix: [tag:king-of-the-hill]. To search for posts with a certain tag, include the name in quotes: "king-of-the-hill".

\$\endgroup\$
4
  • 1
    \$\begingroup\$ What if I posted on the sandbox a long time ago and get no response? \$\endgroup\$ Commented May 15, 2024 at 14:05
  • 2
    \$\begingroup\$ @None1 If you don't get feedback for a while you can ask in the nineteenth byte \$\endgroup\$ Commented May 29, 2024 at 13:27
  • \$\begingroup\$ 500 c kanji link \$\endgroup\$ Commented Nov 23 at 17:52
  • \$\begingroup\$ Why some submissions which is a duplicate or some problems with don't downvoted but sometimes I had submissions which heavily downvoted and nobody posted reason? \$\endgroup\$ Commented Nov 23 at 20:19

4981 Answers 4981

1
25 26
27
28 29
167
3
\$\begingroup\$

Sleep Forever

Write a program that never exits completely, but also after startup consumes exactly 0.0 CPU time.

This means you must sleep in a way that the operation system never wakes up the process. ps aux | grep [your program] should show %CPU 0.0 at any time after startup.

Note a long sleep in a loop is not enough, since then the OS will need to wake up your program to start the next iteration. You must absolutely never be woken up.

Waking up on signals for the purpose of exiting is OK if your language does that by default. However, no normal input over pipes should not wake your program up.

You can use CPU for any finite amount of time during startup.

This is , shortest code wins.

Meta:

I need some help with the signals exception. I don't want submissions to need to spend a large amount of code to disable all signal handlers present by default, but also I don't want programs that just "wait for a keypress" for example which isn't really reasonable.

I also want to avoid giving significant advantages to languages just because of what signal handlers they do/do not have by default.

I also want to avoid using too much OS specific terminology.

Suggestions appreciated.

\$\endgroup\$
4
  • \$\begingroup\$ Is waiting for input or confirmation OK? E.g. JS alert() \$\endgroup\$ Commented Jul 18, 2023 at 12:32
  • \$\begingroup\$ @Adám No, I could use help how to specify that clearly though \$\endgroup\$ Commented Jul 18, 2023 at 12:32
  • \$\begingroup\$ What is px? I don't seem to have it, though Ubuntu says I can get it with apt. \$\endgroup\$ Commented Jul 25, 2023 at 1:13
  • \$\begingroup\$ @Bbrk24 I guess they meant ps \$\endgroup\$ Commented Jul 26, 2023 at 18:15
3
\$\begingroup\$

Efficient Ouroboros Quine

An ouroborus quine is a program that (taking no input) outputs the source code of a different program, which in turn outputs the source code of a different program, and so on, until after some number of iterations, the result is the source code of the original program. In some cases (often called quine relays) each program is in a different language, but here all the programs forming an ouroboros should be in the same language. Let the period of an ouroboros quine, \$T\$, be the number of distinct programs involved in the loop.

The challenge is to find the most efficient ouroboros quine, achieving the maximum period using the minimum program size. Let the size, \$N\$, be the number of bits (not bytes) in the source code of largest program in the ouroboros. Your score is \$\frac{\log_2 T}{N}\$.

This formula is scaled such that the theoretical maximum score is arbitrarily close to 2, for arbitrarily large \$N\$. A score of 1 is achieved if every possible string of length \$N\$ is a valid program which forms a part of an ouroboros quine. The maximum theoretical score also requires that every possible string of length less than \$N\$ is a program forming part of the ouroboros.

As achieving an arbitrarily high score may require an arbitrarily large program, it is permitted to describe the program (and prove/demonstrate its correctness), rather than providing an arbitrarily large amount of raw code.

Sandbox Questions

  • Is this an interesting (and novel) question?
  • Do I need to specify the output format more precisely, or do standard guidelines on output format suffice?
  • Is allowing a program description, rather than raw code, a disastrous idea? Or, conversely, is it even necessary to state that this is permitted?
\$\endgroup\$
1
  • \$\begingroup\$ Welcome to Code Golf, and very nice first challenge idea! I don't think you need to explicitly state that a description and proof for large programs is allowed (that's usually the default here). See some Unary answers which do exactly that. \$\endgroup\$ Commented Jul 29, 2023 at 13:41
3
\$\begingroup\$

Cut a Pizza into infinite number of slices using the minimum number of cuts

It is well known that with n straight cuts it is possible to cut a circle into \$\frac{n^2 + n + 2}{2}\$ pieces. This is known as the Lazy Caterer's Sequence.

https://en.wikipedia.org/wiki/Lazy_caterer%27s_sequence#/media/File:Central_polygonal_numbers.svg

However, finding the right angles to cut the circle is less easy. The areas after each cut become very small.

Your task is to find these angles. Output a infinite sequence of pairs of angles such that if you connect each pair by a line, you'd cut the circle into \$\frac{n^2 + n + 2}{2}\$ pieces. Angles may be either in degrees, radians, or any other reasonable way to measure angles, can be either floating points, fractions, or any other reasonable way to represent numbers.

As with standard sequence rules, you may:

  1. Print the pairs infinitely
  2. Take an input N then output the Nth chord
  3. Take an input N then output the first N chords.

This is , shortest answer wins.

\$\endgroup\$
5
  • \$\begingroup\$ Nice challenge, a couple of test cases would definitely help when you get the chance. \$\endgroup\$ Commented Jul 30, 2023 at 12:09
  • \$\begingroup\$ @noodleman There are many possible solutions though \$\endgroup\$ Commented Jul 30, 2023 at 12:58
  • \$\begingroup\$ Hmm, maybe I don't understand this quite right. Is this not a regular sequence? Is it an open-ended-function or something? I guess I need some kind of example to understand this. \$\endgroup\$ Commented Jul 30, 2023 at 13:10
  • 1
    \$\begingroup\$ As long as your chords divide the circle into the required number of segments your solution is valid \$\endgroup\$ Commented Jul 30, 2023 at 13:15
  • \$\begingroup\$ Even with there being many possible solutions I think a clear example of some valid IO is worthwhile. Even just labelling the existing diagram with its angles would make things a lot easier to understand in my opinion \$\endgroup\$ Commented Jul 31, 2023 at 19:39
3
\$\begingroup\$

Continuously Count Consecutive Cases

\$\endgroup\$
6
  • \$\begingroup\$ I think taking input as a list of strings would be the most standard way of achieving what you want (and returning or printing a list of outputs) \$\endgroup\$ Commented Jul 17, 2023 at 15:14
  • \$\begingroup\$ otherwise you could ask for submissions to be full programs, since it's rare to ask that functions keep state \$\endgroup\$ Commented Jul 17, 2023 at 15:15
  • \$\begingroup\$ of course, that would invalidate answers in languages which cannot take input, which is why I'm leaning towards the list of strings approach \$\endgroup\$ Commented Jul 17, 2023 at 15:21
  • \$\begingroup\$ how is a string different from a boolean array here? \$\endgroup\$ Commented Jul 17, 2023 at 15:29
  • 2
    \$\begingroup\$ some relevant defaults for IO: 1, 2, 3 \$\endgroup\$ Commented Jul 17, 2023 at 15:43
  • \$\begingroup\$ @c-- Taking as a list makes much more sense now. Boolean array would consist of booleans instead of characters, as is the expected format for each input. \$\endgroup\$ Commented Jul 17, 2023 at 17:10
3
\$\begingroup\$

Calculating Transitive Closure

\$\endgroup\$
6
  • \$\begingroup\$ Wouldn't the output for the empty relation be 0? It satisfies the condition for being transitive. \$\endgroup\$ Commented Jul 27, 2023 at 8:10
  • \$\begingroup\$ I think the task might be easier to understand, if you add a purely graph theoretic explanation. If I understood it correctly a graph is transitively closed iff any two vertices that are connected by a directed path (or cycle) are also connected by an edge. \$\endgroup\$ Commented Jul 27, 2023 at 8:25
  • \$\begingroup\$ @bsoelch Yeah, actually, it should be 0. I'll update that. And yes, I thought I could do a better job explaining, but I would prefer to keep the visuals, I think it makes the question seem more inviting. I can definitely change the visuals though, for an easier-to-understand task. \$\endgroup\$ Commented Jul 27, 2023 at 12:12
  • \$\begingroup\$ The visuals also work for the graph theoretic explanation. But only talking about general relations may be a bit to abstract (especially the Wikipedia citations) makes the task sound more complicated than it actually is. \$\endgroup\$ Commented Jul 27, 2023 at 12:19
  • \$\begingroup\$ Hmm. I thought talking about general relations would be the easiest way to go about explaining the concept. Introducing cycles and more complicated topics seemed unnecessary. How would you recommend I go about simplifying my question? \$\endgroup\$ Commented Jul 27, 2023 at 13:09
  • \$\begingroup\$ I think I'm going to leave the technical definitions in, but also provide a link to a website that explains transitive closure in simple terms. It's not very complicated at all. \$\endgroup\$ Commented Jul 27, 2023 at 13:16
3
\$\begingroup\$

Battle Chess Royale (Any better name?)


Imagine a large chess board where different players can choose and place a chess piece. Pieces are Knights, Bishops, Rooks, Kings or Queens. Each piece has an unique movement ability and a point per turn value. The board, after an specific amount of rounds will shrink (as a battle royale field do) disqualifying any player that left its piece outside.

The goal of the game is to get as many points as you can. This can be achieved by simply staying within the safe zone of the board and killing other players to take their points.

Each piece has an specific amount of passive points per turn based on how freely it can move. Below is the table used. Feel free to give any suggestion on point distribution.

enter image description here

Note: Pawns are not added to the game since their movement is similar to a king

For the game, you will select which piece type you wanna play with. The function for your bot will take as a parameter a board (n x n matrix), an array with the available moves your piece can perform, a list with the next players, and finally an object with info about the game (next shrinking round, leaderboard, etc...). Your return value should be your desired move (must be from your available move array).


Bots Examples

new Bishop(function(board, availableMoves, players, gameInfo){ return availableMoves[0]; }, "Drunky Step"); 

new Rook( (board, availableMoves, players, gameInfo) => availableMoves[Math.floor(Math.random() * availableMoves.length)], "Le Rook" ) 

new Queen(function(board, availableMoves, players, gameInfo){ let targets = availableMoves.filter(move => { return board[move[0]][move[1]] != null; }); if(targets.length > 0) return targets[0]; else return availableMoves[Math.floor(Math.random() * availableMoves.length)]; }, "Killer") 

Here is an example of a 5x5 board with 2 bishops in it

enter image description here


Notes

  • The game will be turn based.
  • Players are randomly shuffled before the beginning of the game
  • There is an specific amount of rounds where you cant capture anyone
  • Board always shrinks towards the center
  • If you die or get captured, you score remains
  • It is possible to die because of board shrink, and still win the game
  • There is no suicide unless you wait for board shrink

Questions:

  • Has this been made?
  • Config options as # of rounds, board size, how many rounds every shrink, etc... can be set up before the game. What values should I use?
  • Any considerations I should take?

PD: I have most of the controller done, I'll be uploading it soon. I'm still working on some basic graphic interface.

\$\endgroup\$
6
  • \$\begingroup\$ Why would anyone select bishop, rook or king if the queen can do more? \$\endgroup\$ Commented Jul 18, 2023 at 7:49
  • \$\begingroup\$ @SuperStormer You would earn less points per turn using a queen instead of some other piece. The queen has a better attacking capabilities but her pasive income is low compared to other pieces \$\endgroup\$ Commented Jul 18, 2023 at 13:24
  • \$\begingroup\$ What can I do with the money? \$\endgroup\$ Commented Jul 21, 2023 at 13:12
  • \$\begingroup\$ @Iamkindofalanguagedev points is what defines the leadership, who is winning xD \$\endgroup\$ Commented Jul 21, 2023 at 14:22
  • \$\begingroup\$ @LuisfelipeDejesusMunoz So if I get lots of money, it’s ok to die soon? \$\endgroup\$ Commented Jul 21, 2023 at 14:42
  • \$\begingroup\$ @Iamkindofalanguagedev That could be a strategy, I just dont know how good it would be \$\endgroup\$ Commented Jul 21, 2023 at 14:49
3
\$\begingroup\$

Is this set laminar?

\$\endgroup\$
1
  • \$\begingroup\$ Maybe add plain English explanations alongside the mathy-notation? \$\endgroup\$ Commented Jul 30, 2023 at 12:12
3
\$\begingroup\$

Calculate the aspect ratio of the Nepal flag

This is the nepal flag.

Apove is the picture of the flag of the country Nepal. Pretty cool.

What's cooler, is the aspect ratio, which is defined under the constitution as:

Aspect ratio.

This is A230582.

Your task is to output at least the first 113 digits of the decimal expansion, in any format of your choosing.

\$\endgroup\$
3
\$\begingroup\$

Write a Tank AI

Preamble

This preamble will be removed in the real post.

I have created a platform to automatically run multi-language KotH. In this example, the framework will simulate an abstract battle of tanks on a grid. Each user's answer will control their tank.

The idea is that the competition will be open for a month -- after which the competition will be run offline and then the results will be appended to the Code Golf question.

I have written the proof-of-concept simulator in a way that makes it easy for people to add new competitions. It should be good enough for this first competition and then made more robust afterwards.

The title for the software is Harmagedon (which means Mount Magiddoh) because:

  1. it conveys the idea of Armageddon i.e. there is a high stakes battle.
  2. the mountain part gives a nod to classic King of the Hill type games.

I am interested in feedback on how the post can be worded more clearly and what information needs to be added.

Tank Battle

Write an AI to control a tank on a grid. Each player's tank is placed in a randomly, unique row and column. The number of the grid's rows and columns are each equal to the number of players.

The grid is a torus. In other words, things exiting the grid from the right-most column will appear on the left-most column (in the same row), things exiting from the upper-most row will appear on the bottom most row (in the same column), and visa-versa.

Tanks receive instructions based on the output of their code. Output is in the form of two letters and a new line.

All tanks act simultaneously in a round of decision-making called a tick.

Running code

Every tick, when the simulator needs a tank to make a decision, it runs the tank's code (passing the game state into the standard input). It then captures the standard output and performs that action (as long as it matches a valid instruction for moving or shooting).

There is a 3 second timeout for running code. Any code that takes longer to run will result in that tank not performing any action that tick.

Note: During a tick, all of the move actions will first resolve and then all of the shooting actions.

Format of Standard Input

The format of the game state will be as follows:

Game_State ::= YourUserID ';' GridWidth (';' Position)+ Position ::= TankUserID ',' XCoord ',' YCoord 

As an example, if you are user 9999 on Code Golf Stack Exchange, and the following is the starting grid:

 Y ^ | +--------+--------+--------+ | | | | 2 | [0] | | | | | | | +--------+--------+--------+ | | | | 1 | | | [9999] | | | | | +--------+--------+--------+ | | | | 0 | |[50000] | | | | | | +--------+--------+--------+-> X 0 1 2 

Then the input to your code will look like this for the 1st tick:

9999;3;0,0,2;9999,2,1;50000,1,0

Breaking it up one chunk at a time:

  • 9999: You are tank 9999.
  • 3: The grid is 3 squares wide and 3 squares tall.
  • 0,0,2: The tank controlled by user 0 is at co-ordinate (0, 2)
  • 9999,2,1: The tank controlled by user 9999 is at co-ordinate (2, 1)
  • 50000,1,0: The tank controlled by user 50000 is at co-ordinate (1, 0)

Format of code output

Your output can be either a moving or shooting instruction.

Moving Instruction

  • mu: Move one tile up
  • md: Move one tile down
  • ml: Move one tile left
  • mr: Move one tile right

If more than one tank attempts to move to the same square in a tick, only one will move there and the others will remain where they were. No grantees are made about which ones stay behind (i.e. in theory non-deterministic but potentially deterministic in implementation).

Shooting Instruction

  • su: Shoot upward
  • sd: Shoot downward
  • sl: Shoot left
  • sr: Shoot right

When a tank shoots in a direction, the projectile will instantly traverse from the tank in that direction until it reaches another tank or back to its starting position. If it reaches another tank (other than the one who fired it), it will destroy that tank and remove it from the grid. If no other tanks are encountered along its path, nothing happens.

Winning

Players are ordered by the amount of time that they last on the grid. The winner is the player who doesn't die, the second placed players are those whose tanks were destroyed last, the third place are those whose tanks were destroyed second-last and so on.

Ties for places happen when more than one tank is destroyed in a tick.

Submitting

Code should be submitted as an answer on Code Golf.

The answer needs to have a very specific format so that the simulator can parse it.

The format can be described as follows.

The answer must contain at least two code blocks. The first code block should be the name of the language being used and the second should be the code being submitted.

The language can be any listed in this JSON object. Use one of the object keys to refer to which language you will use.

Note: There is a hard 1024 character limit for submissions.

Example

# This is an example submission All of this text before the next code block will be ignored: ``` python3 ``` The above code block will be parsed to find out which language to run the code in (because it's the first code block); this text, however, will be ignored because it is not a code block. The next code block will be parsed to get the code that will control this answer's tank. Normally one could add extra information here to elaborate on the solution. ``` import random stdin = input() # Get the world state # Parse the world state my_id, width, *tanks = stdin.split(';') tanks = [t.split(',') for t in tanks] # Get my position my_x, my_y = next(t for t in tanks if t[0] == my_id)[1:] # Get a list of other tanks that are in-line with me inline = [t for t in tanks if t[0] != my_id and (t[1] == my_x or t[2] == my_y)] if inline: # If one exists, other_tank = inline[0] # then shoot on that axis. if other_tank[1] == my_x: print('sl') else: print('su') else: # otherwise, move in a random direction print(random.choice(['mu', 'md', 'ml', 'mr'])) ``` Everything after this previous code block will be ignored (including other `code blocks`). 
\$\endgroup\$
9
  • 1
    \$\begingroup\$ Everything else aside for now: Do you need a separate code block to specify the language? You can indicate the language on the same line as the opening backticks. \$\endgroup\$ Commented Aug 3, 2023 at 17:08
  • 2
    \$\begingroup\$ Looks interesting, although I don't understand yet how it differs from king-of-the-hill challenges, going to have to read it a few more times. I see you're allowing any language on TIO. Does that mean they'll all be run by making requests to TIO? Or are you planning to install languages onto your computer as necessary? \$\endgroup\$ Commented Aug 3, 2023 at 17:08
  • \$\begingroup\$ My bad, I see now you're making requests to TIO. Any idea if you'd get rate-limited or something? \$\endgroup\$ Commented Aug 3, 2023 at 17:11
  • 1
    \$\begingroup\$ @user Perhaps its not too different to KotH. It it could be a new way to do it. Since you can run more languages than the average KotH challenge and there is less manual work. I don't particularly mind if a new challenge type is created or not. As for the TIO question. I asked the maintainer in 2021 if it's fine (back when I first had the idea) and they said that they didn't currently have plans to rate limit. Either way, when the competition is actually run, it can be done in stages if needed. \$\endgroup\$ Commented Aug 3, 2023 at 17:15
  • \$\begingroup\$ @Bbrk24 Not really. It seemed easier to explain the code blocks like this conceptually. It can always change. \$\endgroup\$ Commented Aug 3, 2023 at 17:18
  • 1
    \$\begingroup\$ Can submissions store state between ticks? When I first read this I thought the programs would be run once with stdin being blocked between ticks, but now that I know it's being run on TIO, I'm not sure that's possible. \$\endgroup\$ Commented Aug 3, 2023 at 17:54
  • \$\begingroup\$ This isn't a new challenge type at all, it 100% fits within king-of-the-hill \$\endgroup\$ Commented Aug 3, 2023 at 23:16
  • \$\begingroup\$ @RydwolfPrograms Fair enough. I have updated the question regarding that. \$\endgroup\$ Commented Aug 4, 2023 at 18:13
  • \$\begingroup\$ @Bbrk24 Code is run statelessly. Every time someone's code is run, the world state is passed in as input. Can you suggest a way to make it clearer? \$\endgroup\$ Commented Aug 4, 2023 at 18:18
3
\$\begingroup\$

Hashers and Crashers

\$\endgroup\$
14
  • \$\begingroup\$ You might want to add an example cop and crack. \$\endgroup\$ Commented Jul 20, 2023 at 17:42
  • \$\begingroup\$ Related \$\endgroup\$ Commented Jul 20, 2023 at 17:44
  • \$\begingroup\$ @noodleman added \$\endgroup\$ Commented Jul 20, 2023 at 17:59
  • \$\begingroup\$ @Bbrk24 it seems exactly the same except of the scoring system, is that enough to make it not a duplicate? Edit: I just realized the other challenge hashes numbers instead of strings. \$\endgroup\$ Commented Jul 20, 2023 at 17:59
  • \$\begingroup\$ How does this work when there is more than one collision? For (a poor) example, if my hash last_char(input) and no one cracks it I might say that the collision was "longstringyousee" and "bigscore" giving me a score of 24, but clearly "a" and "ba" are also a collision. One could imagine more complex (that actually have a chance at not being cracked) hashes that allow arbitrarily sized collisions. \$\endgroup\$ Commented Jul 21, 2023 at 16:02
  • \$\begingroup\$ @CursorCoercer for cops the shorter collision is better. \$\endgroup\$ Commented Jul 21, 2023 at 16:06
  • \$\begingroup\$ Ah right, I got mixed up in my train of thought, I was concerned about the robber scoring. It probably won't be much of a problem anyways, but just something to keep in mind \$\endgroup\$ Commented Jul 21, 2023 at 16:32
  • \$\begingroup\$ What if a cop just copy-pastes a SHA256 implementation? lol \$\endgroup\$ Commented Jul 24, 2023 at 15:47
  • 1
    \$\begingroup\$ @ShiranYuan They would have to know a collision in the SHA256 hash system for the answer to be valid, so the US government would be very interested. \$\endgroup\$ Commented Jul 24, 2023 at 15:52
  • \$\begingroup\$ @Iamkindofalanguagedev Ok so maybe sending the challenge out would help CGCC get government attention and thus more publicity :P \$\endgroup\$ Commented Jul 24, 2023 at 16:04
  • \$\begingroup\$ @ShiranYuan huh? \$\endgroup\$ Commented Jul 24, 2023 at 16:05
  • \$\begingroup\$ @Iamkindofalanguagedev just joking lol \$\endgroup\$ Commented Jul 24, 2023 at 16:06
  • \$\begingroup\$ @CursorCoercer Standard CnR rules are that unintended cracks are still valid, so if I find a shorter crack than the cop intended, scoring works the same as if that was the intended solution. \$\endgroup\$ Commented Jul 25, 2023 at 2:54
  • \$\begingroup\$ @RydwolfPrograms yes, that’s true. \$\endgroup\$ Commented Jul 25, 2023 at 6:47
3
\$\begingroup\$

Count N-Rich Permutations of an Integer Sequence

Given a sequence of integers with length \$L\$ and an integer \$1 \le N \le L\$, an "\$N\$-rich" permutation is one whose the longest strictly increasing subsequence has length exactly \$N\$.

For example, let our sequence be [0, 1, 2, 3]. There is exactly one \$1\$-rich permutation, given by [3, 2, 1, 0]. By contrast, there are sixteen \$2\$-rich permutations:

[0, 2, 1, 3] [0, 3, 1, 2] [0, 3, 2, 1] [1, 0, 3, 2] [1, 2, 0, 3] [1, 3, 0, 2] [1, 3, 2, 0] [2, 0, 3, 1] [2, 1, 0, 3] [2, 1, 3, 0] [2, 3, 0, 1] [2, 3, 1, 0] [3, 0, 2, 1] [3, 1, 0, 2] [3, 1, 2, 0] [3, 2, 0, 1] 

Note that [0, 1, 3, 2] is \$3\$-rich and NOT \$2\$-rich, because even though it contains a strictly increasing subsequence of length 2, it also contains a longer strictly increasing subsequence.

The Challenge

Your challenge is to write a function which takes in an integer sequence S with some length \$L\$, and an integer \$1 \le N \le L\$, and returns the number of N-rich permutations of S.

This is code golf, so the shortest valid answer wins.

Test cases

Each row is a sequence along with the expected output for all possible values of L. For example, the first row says that if your function is called f, then f([1, 2, 3, 4, 5], 3) = 41

[1, 2, 3, 4, 5] => 1, 69, 41, 8, 1 [1, 2, 2, 3, 3, 4, 5] => 4, 2612, 2064, 336, 24, 0, 0 [1, 1, 1, 1, 1, 1, 1] => 5040, 0, 0, 0, 0, 0, 0 [1, 2, 3, 1, 2, 3, 4] => 8, 2976, 1864, 192, 0, 0, 0 
\$\endgroup\$
3
\$\begingroup\$

Could it be a possible chess move?

Backstory

Professor Chesster has a library of chess puzzles with solutions, but a meteor has struck (not real, I promise) and now their hard drive may be corrupted! Luckily, Professor Chesster's puzzle FENs are stored securely, but the solutions to those puzzles have all been jumbled up and could be as ridiculous as gxm9=L or even axc3! Professer Chesster needs a quick and simple scan to check if the solutions to their puzzles are valid.

Luckily, most of the meteor is not radioactive (no ) but because Professor Chesster's hard drive is now a literal potato, they need the code to be as short as possible () or it might overheat!

Stop waffling pls and show me the challenge!!!

OK, fine. Here:

Check if a move inputted with algebraic notation could be valid. Return a truthy value if it is, and a falsy value otherwise.

List of all moves that are valid

Na1, Na2, ..., Nh8 Ka1, ... ... [all other pieces] Nxa1, Nxa2, ... [captures] Nba1, ... [specify row] N2a1, ... [specify col] Nb3a1, ... [row & col] Nbxa1, N2xa1, Nb3xa1, ... (NOT Kab3 as there's only one king) O-O (or 0-0??? META - WHAT DO I DO) O-O-O (or 0-0-0??? META - THIS TOO) axb2 to axb7 bxc2 to bxc7 ... gxh2 to gxh7 then bxa1 to bxa7 ... hxg7 Then promotions (a1=Q, a1=R, a1=B, a1=N) b1=QRBN, c1=QRBN, ..., h1=QRBN a8=QRBN, ... axb1=QRBN,bxc1=QRBN, ....... [other moves I may have missed] 

Scoring

Again, Professor Chesster's hard drive is such a potato that they require it to be golfed as much as possible. (this is )

META: Mandatory duplicate check

Not a duplicate of Is it a valid chess move? as that asks about a specific position.

Not a duplicate of Is it a plausible chess move? as that doesn't include piece information and a few other things that will be mentioned below

Sandbox/Meta stuff

  • Specifications
    • Do I include...
      • Check (move+)?
      • Double check (move++)?
      • Checkmate (move#)?
    • Did I miss any other chess moves?
  • Funny enough backstory?
\$\endgroup\$
9
  • \$\begingroup\$ Are we allowed to move our king into check? \$\endgroup\$ Commented Aug 20, 2023 at 9:19
  • \$\begingroup\$ related challenges: next move in restricted set of moves, verify next move \$\endgroup\$ Commented Aug 20, 2023 at 13:08
  • \$\begingroup\$ @bsoelch If I'm reading it correctly it's about outputting all possible moves from any position. So something like axc6 would not be included in the output because no matter what the position is, a pawn can't take a piece two files away from it. I could be misinterpreting the question though, it certainly isn't too clear what is meant by "all valid chess moves." \$\endgroup\$ Commented Aug 20, 2023 at 18:50
  • \$\begingroup\$ It's all moves that could ever be valid in any position. Editing that in now \$\endgroup\$ Commented Aug 21, 2023 at 9:21
  • \$\begingroup\$ Considering that the order of possible moves is not fixed I would not mark it as sequence \$\endgroup\$ Commented Aug 21, 2023 at 9:28
  • \$\begingroup\$ You should probably explain/link to the chess notation you are using \$\endgroup\$ Commented Aug 21, 2023 at 9:30
  • \$\begingroup\$ @TheEmptyStringPhotographer doesn't matter as it's over all possible boards || @bsoelch thanks for related challenges; not marked sequence anymore; linked to algebraic notation || @AidenChow yes - see the updated question \$\endgroup\$ Commented Aug 21, 2023 at 9:35
  • \$\begingroup\$ IMO you would need to specify how to differentiate a a good move from a brilliant move from a normal move (Sotckfish uses an AI and an specific scoring system to determine the quality of a move) \$\endgroup\$ Commented Aug 21, 2023 at 14:29
  • \$\begingroup\$ You don't need to differentiate them; this program has no input. It generates ALL possible moves from ALL possible boards \$\endgroup\$ Commented Aug 22, 2023 at 8:02
3
\$\begingroup\$

Decode Chess Move

\$\endgroup\$
2
  • \$\begingroup\$ Apart from exluding moves like Nae5 (which I assume you did intentionally - "Knight (b) to a3" or "Knight(b) to a3" seem like good options if you were to include it) this looks good. May want to specify how to handle O-O-O (using the letter o and not the number 0) \$\endgroup\$ Commented Aug 23, 2023 at 9:43
  • 1
    \$\begingroup\$ @WD for ambiguous moves (such as Nae5 even tho that is not a valid move) input will specify the starting square and the target square. For example, imagine there is a knight on d3 and another one on f3, input will specify the movement of the d3 knight as Nd3e5 \$\endgroup\$ Commented Aug 23, 2023 at 13:32
3
\$\begingroup\$

Erasure Poetry

Given two strings of digits \$A\$ and \$B\$, count the minimum number of digits that need to be removed from \$A\$ to make it a substring of \$B\$. (META: i am still brainstorming what this actual challenge part should be, though i think this challenge might be good).

However, you will not be "writing" programs/functions to solve this challenge, so much as you will be finding them in the previous answer.

Challenge specification

(spec in progress)

Take two strings of digits \$A\$ and \$B\$. You can assume these strings will both be nonzero in length and contain any amount of the following characters in any order: 0123456789. Return the number of digits needed to be removed from \$A\$ in order to make it be a substring of \$B\$.

Worked out examples:

A: "3" B: "123" Output: 0 Explanation: "3" is already a substring of "123", so 0 characters need to be removed from it A: "1322" B: "12345" Output: 2 Explanation: "12" is the biggest potential substring of B that could be made from A, and it requires removing the 3 and one of the 2s A: "12345" B: "123" Output: 2 Explanation: "123" is the biggest potential substring of B that could be made from A, and it requires removing the 4 and 5 A: "12345" B: "67890" Output: 5 Explanation: None of A exists in B, so "" (the empty string) is the biggest potential substring of B that could be made from A, and it requires removing all 5 of the digits 

Scoring specification

Contrary to what I said in the intro, you will technically be writing a program or function to solve this challenge. However, you will not be scored directly on your code length.

Included with your answer will be a list of characters you will remove from the previous answer's code such that it becomes your answer's code. If this is not possible with removals alone, you may also add characters to the previous answer, but this will come with a score penalty.

In particular: Your score is the number of characters you need to add to some substring of the previous answer's code in order to make it your answer's code. Lowest score wins.

The first answer to base your score off of will be provided at the bottom of this post.

Answer chaining rules

Importantly, you may not answer the challenge in a language that has already been used unless your answer has a lower score. Flags and version numbers do not differentiate languages in this challenge.

(more clarifications and guidelines)

Answer chaining example

6. MyOwnLanguage, +3 characters

previous answer with removed characters replaced with *:

do ****thing *o** 

with my added characters becomes:

do thing now! 

Try It Online

7. HQ9+2, +0 characters

previous answer with removed characters replaced with *:

do*thing****! 

with my (0) added characters becomes:

dothing! 

Try It Online

Starting answer

0. JavaScript (V8), +361 characters

f = (a, b) => { const isSubstring = (c, d) => { if(!c){ return true }else{ return RegExp(`${c}`).test(d) } } if(isSubstring(a, b)){ return 0 }else{ a = [...Array(a.length).keys()] .map(w => a.slice(0, w) + a.slice(w + 1) ) a = a.map(w => f(w,b)) return 1 + Math.min(...a) } } 

Try it online!

meta

work in progresss, but feel free to suggest anything you think i might be missing, even if it seems obvious. Still working out the formatting for everything to look nice :-)

\$\endgroup\$
3
  • 2
    \$\begingroup\$ How does this work with SBCS? \$\endgroup\$ Commented Sep 5, 2022 at 17:37
  • \$\begingroup\$ @CommandMaster not sure yet, im thinking about just making it based on the byte value itself. seems fair since most languages use just printable ascii, and from what ive seen, most SCBSes have their printable ascii on the same bytes as regular printable ascii. I might require / ask that languages with alternate encodings provide a hex dump. Does that sound reasonable? \$\endgroup\$ Commented Sep 5, 2022 at 18:09
  • \$\begingroup\$ @CommandMaster actually I changed my mind, im making it char based so its just gonna be easier to work with in general :P I can't imagine there will be much cheesing in the way of "my language has one million different encodings for these commands so i can do every solution in 0", plus you can only use the language again if you can actually lower its score :P this should be ok :-) \$\endgroup\$ Commented Oct 17, 2022 at 13:45
3
\$\begingroup\$

What's my score?

The question score on Stack Exchange is the total number of upvotes minus the total number of downvotes a question receives. However, the reputation gained/lost for every upvote/downvote is different (10/-2 on Code Golf).

Given the total reputation and the reputation gained/lost on votes, list out all possible scores the question could have.

Rules

  • The total reputation, the reputation gained by an upvote and reputation lost by a downvote must be integers
  • The upvote-reputation will be positive and the downvote-reputation will be negative
  • You can output the possible question scores as a (possibly infinite) list or print each one individually.
  • This is , so the shortest answer wins

Examples

[total reputation, upvote-reputation, downvote-reputation] -> [question scores] [28, 10, -2] -> [2, -2, -6, -10, ...] [34, 10, -2] -> [1, -3, -7, -11, ...] [17, 10, -2] -> [] [11, 7, -5] -> [1, -1, -3, -5, ...] [82, 31, -11] -> [2, -18, -38, -58, ...] [15, 5, -10] -> [3, 4, 5, 6, ...] 
\$\endgroup\$
3
\$\begingroup\$

Sum of consecutive nth powers

\$\endgroup\$
0
3
\$\begingroup\$

How many ways to cut a number into an equation?

\$\endgroup\$
3
\$\begingroup\$

Play a game of memory

\$\endgroup\$
2
  • \$\begingroup\$ Suggest test case "cbxcxvbaav", 8 \$\endgroup\$ Commented Sep 12, 2023 at 12:37
  • 1
    \$\begingroup\$ @bsoelch In Memory you pick the cards in order, so you can adjust the second card based on the first, so if you see the first has a match you can choose that match as the second card \$\endgroup\$ Commented Sep 12, 2023 at 19:32
3
\$\begingroup\$

Numbers with distinct decimal digits

\$\endgroup\$
3
\$\begingroup\$

Implement Subleq

\$\endgroup\$
2
  • \$\begingroup\$ @bsoelch Fixed. \$\endgroup\$ Commented Sep 19, 2023 at 17:40
  • \$\begingroup\$ @bsoelch That was a mistake on my part as well, I'll replace the example. \$\endgroup\$ Commented Sep 20, 2023 at 18:38
3
\$\begingroup\$

Do you win a Numeric Mahjong?

\$\endgroup\$
5
  • \$\begingroup\$ why do we need the first rule? That would be like restricting languages made after posting this question \$\endgroup\$ Commented Sep 19, 2023 at 12:41
  • \$\begingroup\$ @UndoneStudios Now that I think of it, fractional byte encodings seem fine. Variable length encodings (like Vyncode) are a problem, because they don't really define a mapping from a char in source to an integer. \$\endgroup\$ Commented Sep 19, 2023 at 23:36
  • \$\begingroup\$ This should be a question to raise in meta \$\endgroup\$ Commented Sep 20, 2023 at 3:55
  • \$\begingroup\$ @UndoneStudios The rule is needed to define how to convert a source code to a list of integers. It totally isn't like "restricting languages made after posting this question". All languages can participate as long as they have a textual or byte representation (which practically all languages used on the site do). Only some encodings of some languages are not allowed. \$\endgroup\$ Commented Sep 20, 2023 at 4:19
  • \$\begingroup\$ Well, technically, I was only against variable encodings; that is cheaty \$\endgroup\$ Commented Sep 20, 2023 at 4:21
3
\$\begingroup\$

I (rev)?(pal)? the source code, you (rev)?(pal)? the input!

\$\endgroup\$
3
\$\begingroup\$

Complete an equivalence relation

In set theory, a relation from a set \$A\$ to a set \$B\$ is a set of pairs of elements from \$A\$ and \$B\$. For example, \$\{(1, 5), (1, 6), (2, 4), (3, 5)\}\$ is a relation from the set \$\{1, 2, 3\}\$ to the set \$\{4, 5, 6\}\$.

A relation \$R\$ from a set \$A\$ to itself is an equivalence relation iff:

  • It is reflexive: For all elements of \$A\$, \$(a, a)\$ is in \$R\$.
  • It is symmetric: If a pair \$(a, b)\$ is in \$R\$, then so is \$(b, a)\$.
  • It is transitive: If the pairs \$(a, b)\$ and \$(b, c)\$ are in \$R\$, then so is \$(a, c)\$.

For example, \$\{(1, 1), (1, 2), (2, 1), (2, 2), (3, 3)\}\$ is an equivalence relation on the set \$\{1, 2, 3\}\$.

Your challenge is to, given a relation from a set to itself, add as few pairs of elements as possible to transform it into an equivalence relation.

Worked example

If we start with the relation \$\{(1, 2), (3, 2), (4, 4)\}\$, then:

Firstly, the relation must be reflexive, so all pairs of elements \$(a, a)\$ must be added, resulting in \$\{(1, 2), (3, 2), (4, 4), (1, 1), (2, 2), (3, 3)\}\$.

Next, the relation must be symmetric, so we need to add the inverses of \$(1, 2)\$ and \$(3, 2)\$, resulting in \$\{(1, 2), (3, 2), (4, 4), (1, 1), (2, 2), (3, 3), (2, 1), (2, 3)\}\$.

Finally, the relation must be transitive. Since \$(1, 2)\$ and \$(2, 3)\$ are in the relation, so must be \$(1, 3)\$, and likewise \$(3, 1)\$ must also be in the relation. Adding these results in \$\{(1, 2), (3, 2), (4, 4), (1, 1), (2, 2), (3, 3), (2, 1), (2, 3), (1, 3), (3, 1)\}\$, and this is an equivalence relation.

Input/output is can be lists of pairs of positive integers, or an adjacency matrix. You can optionally take the domain of the relation (i.e. all unique values in it). The order in which you output the pairs does not matter, and you can assume the input will be nonempty.

Testcases

{(1, 1)} -> {(1, 1)} {(1, 2)} -> {(1, 2), (1, 1), (2, 2), (2, 1)} {(1, 2), (3, 4)} -> {(1, 2), (1, 1), (2, 2), (2, 1), (3, 4), (3, 3), (4, 4), (4, 3)} {(1, 2), (1, 3)} -> {(1, 2), (1, 3), (1, 1), (2, 2), (3, 3), (2, 1), (3, 1), (2, 3), (3, 2)} {(1, 1), (2, 2), (3, 3)} -> {(1, 1), (2, 2), (3, 3)} {(1, 1), (2, 2), (3, 4)} -> {(1, 1), (2, 2), (3, 3), (3, 4), (4, 3)} {(1, 2), (3, 2), (4, 1)} -> {(1, 1), (2, 2), (3, 3), (4, 4), (1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)} {(8, 19), (4, 12), (9, 31), (4, 18)} -> {(8, 8), (8, 19), (19, 8), (19, 19), (4, 4), (4, 12), (4, 18), (12, 4), (12, 12), (12, 18), (18, 4), (18, 12), (18, 18), (9, 9), (9, 31), (31, 9), (31, 31)} {(8, 7), (2, 7), (14, 3), (3, 16)} -> {(2, 2), (2, 7), (2, 8), (7, 2), (7, 7), (7, 8), (8, 2), (8, 7), (8, 8), (3, 3), (3, 14), (3, 16), (14, 3), (14, 14), (14, 16), (16, 3), (16, 14), (16, 16)} {(1, 1), (1, 2)} -> {(1, 1), (1, 2), (2, 1), (2, 2)} 
\$\endgroup\$
8
  • \$\begingroup\$ Could output be loosened to not require outputting pairs already in the input? Although for some reason I feel iffy about going in between, i.e. allowing the output to contain some input pairs without requiring it to contain all of them... \$\endgroup\$ Commented Sep 27, 2023 at 8:47
  • 1
    \$\begingroup\$ @UnrelatedString What exactly are you thinking of when you say that? I can't think of any reasonable approach which would necessitate that. Besides, the point of the challenge is to create the minimal superset that's an equivalence relation. \$\endgroup\$ Commented Sep 27, 2023 at 20:17
  • \$\begingroup\$ I was mostly inspired by the phrase "add as few pairs of elements as possible"--thinking about the interplay between symmetry and transitivity, it seems unlikely any solution would actually benefit from only outputting the added pairs, which makes me kinda curious about leaving the option open. \$\endgroup\$ Commented Sep 28, 2023 at 3:24
  • \$\begingroup\$ Do you have to deduce the set or can you take it as input? Can you use adjacency matrices? Can you output the equivalence classes? \$\endgroup\$ Commented Sep 28, 2023 at 9:13
  • \$\begingroup\$ Possible dupe \$\endgroup\$ Commented Sep 28, 2023 at 9:18
  • \$\begingroup\$ @CommandMaster I'll allow taking the domain as input, and I/O as adjacency matrices. I'm not going to allow outputting the equivalence classes because I can think of several approaches that wouldn't even compute them and I want things to stay semiconsistent. I don't think this is a dupe for two reasons: one, that challenge requires outputting the number of sets to add which a lot of answers take advantage of; two, while transitivity is the hard part of this challenge, incorporating reflexivity and symmetry into an answer from there is still nontrivial. \$\endgroup\$ Commented Sep 29, 2023 at 1:27
  • \$\begingroup\$ are delimiters required? or can i take {(1, 2), (3, 4)} as 1 2 3 4 and output 1 2 1 1 2 2 2 1 3 4 3 3 4 4 4 3? \$\endgroup\$ Commented Sep 29, 2023 at 2:25
  • 1
    \$\begingroup\$ @thejonymyster Since it's a list of pairs, sure, that's fine. I believe taking a flattened list is in the I/O defaults anyway \$\endgroup\$ Commented Sep 29, 2023 at 2:26
3
\$\begingroup\$

The multiples are missing

\$\endgroup\$
0
3
\$\begingroup\$

Find the k-th largest number

Given the string representation of three sorted lists, get the k-th largest number.

The string representation has such form:

1 3 5 7 11 120 9988 23 68 99 111 107 131 888 

aka. lists are separated by newline \n and numbers in one list are separated by space.

Length of each list, length of the string and k are directly given, but access to the string costs. You can fetch from a given position. Least fetches wins.

Your solution should handle all possible inputs well, but only optimize score for average cases.

This is an example solution. It solves the problem with an awful score, but you can also use lib here. Write the lib if it's absent in your language.


Sorted lists in test cases will be generated in this way:

  • Generate 1 million (1'000'000) integers uniformly in \$\left[0, 2^{31}-1\right]\$. Duplicates will likely appear.
  • Sort them.

[Not decided yet] It's fine if your code is only optimized for three 1M length arrays and fallback to worst solution for other input.

\$\endgroup\$
2
  • \$\begingroup\$ You should clarify what "average case" means. From what distribution are the inputs taken? Additionally, can there be duplicates in the lists? \$\endgroup\$ Commented Oct 11, 2023 at 3:35
  • \$\begingroup\$ @CommandMaster Added \$\endgroup\$ Commented Oct 11, 2023 at 8:35
3
\$\begingroup\$

Befunge Comment Outline Creator

\$\endgroup\$
6
  • \$\begingroup\$ Is it equivalent to a 0-1 matrix with an even sum in each row/column? Additionally, I'm assuming an all-space answer is invalid, but I don't see any rule disallowing it. Could you add one? \$\endgroup\$ Commented Oct 20, 2023 at 6:26
  • \$\begingroup\$ @CommandMaster Almost, however having no semicolons at all would result in the IP reading in the comment as code. I could probably clarify that. \$\endgroup\$ Commented Oct 20, 2023 at 6:36
  • \$\begingroup\$ Can I take as input w+2, h+2 instead of w, h? \$\endgroup\$ Commented Oct 21, 2023 at 6:35
  • \$\begingroup\$ @CommandMaster Is it too expensive to add 2 to the inputs? \$\endgroup\$ Commented Oct 21, 2023 at 7:04
  • \$\begingroup\$ I haven't tried, and w, h might be shorter, but it might be easier to use the size of the output instead of the size of the comment itself \$\endgroup\$ Commented Oct 21, 2023 at 7:06
  • \$\begingroup\$ @CommandMaster Hm, I may consider it, it doesn't seem like it would be unfair \$\endgroup\$ Commented Oct 21, 2023 at 7:10
3
\$\begingroup\$

Minecraft XP Orb Amounts

\$\endgroup\$
3
\$\begingroup\$

Intersections in a Circular Scrambled Word

Given a word W and a scrambled version of it S as input, you are required to return the number of intersections S will have when organized in a circular arrangement.

Example

Let W be VICTORY and S be VICYTRO. After transforming the scrambled word in its circular form and forming the original word by adding segments between the characters, we have the following diagram:

enter image description here

As we can see, for this particular example, the expected output is 2 interceptions.

Specs

  • Input will consist only of [A-Z] characters.
  • It is irrelevant how you set up the circular word (clockwise, counterclockwise, if the characters are evenly spaced from one another or not), just be consistent.
  • Input is flexible, read it however you see fit for you.
  • Standard loopholes are not allowed.

Test Cases

Format: W , S --> output VICTORY, VICYTRO --> 2 # To be added more 

This is , so shortest answers in bytes wins!

Meta

Is the challenge interesting? Is there anything unclear? I am not a native English speaker, so I welcome any corrections on the wording of the challenge.

I will later add more test cases. Also, what is the general consensus here where there are multiple correct answers? Because when I add words with repeated letters, depending on the "path" you choose when forming the circular word, it will affect the number of intersections. (I'll update the specs section as well when I introduce these special cases).

Lastly, I didn't give much thought on my second point in the specs section, maybe it's wrong... I'll observe more cases later.

Pretty much any feedback is appreciated!

\$\endgroup\$
3
  • 2
    \$\begingroup\$ Could take input as a permutation of 1..n, to get rid of worrying about repeated letter ambiguity as well as some potential for a "chameleon challenge" (i.e. determining the permutation between the two words could be highly nontrivial in some languages and overshadow the actual "core" of intersections between circle chords). If you do want solutions to have to handle repeats, then I'd recommend just allowing them to give any of the possible outputs. \$\endgroup\$ Commented Oct 29, 2023 at 19:52
  • 1
    \$\begingroup\$ re. multiple possible outputs: challenges often specify that submissions may choose to either output all possible outputs or just one of them. \$\endgroup\$ Commented Oct 29, 2023 at 20:10
  • \$\begingroup\$ I suggest to write W and S instead of W and S to avoid confusion, because those are just names, no data. \$\endgroup\$ Commented Oct 31, 2023 at 12:44
3
\$\begingroup\$

Seat gangs as far as possible

\$\endgroup\$
2
  • \$\begingroup\$ @noodleman No, the gangs can be any (non-zero) size -- \$k\$ is the number of gangs. \$\endgroup\$ Commented Oct 31, 2023 at 17:45
  • 1
    \$\begingroup\$ Suggest test case 1,2,1,2,1 -> 1,1,1,2,2 \$\endgroup\$ Commented Oct 31, 2023 at 17:46
3
\$\begingroup\$

Just another traffic jam!

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Can you specify the zip-lock system? \$\endgroup\$ Commented Nov 27, 2023 at 19:53
  • \$\begingroup\$ @Seggan I added that, thank you. I somehow thought this would be internationally known. \$\endgroup\$ Commented Nov 28, 2023 at 6:49
1
25 26
27
28 29
167

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.