🌟
🎄
🎄🎄
🎄🎄🎄
🎄🎄🎄🎄
🎄🎄🎄🎄🎄
🎁🎁🎁
These are proposed solutions for the Advent of Code 2020.
The solutions are automatically tested with github-actions.
use ./aoc
script
usage: aoc <command> [<args>]
aoc commands are:
run Runs submissions
create Creates a new submission
config Configures user's parameters
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# And now aoc can work
./aoc run
./aoc run
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Running submissions for day 04:
* part 2:
---------------------------------------------------
Avg over all inputs
---------------------------------------------------
---------- ---------- ----------- ---
silvestre 78452 1.99 ms py
degemer 43695 2.39 ms py
jules 23037 2.49 ms py
david 36371 2.94 ms py
thomas 9763 2.97 ms py
ayoub 136461 5.85 ms cpp
evqna 49137 6.65 ms cpp
badouralix 51232 7.26 ms go
tpxp 41668 133.63 ms rb
---------- ---------- ----------- ---
./aoc run -d 1 -d 2 -p 1 -a ayoub -a david
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Running submissions for day 01:
* part 1:
---------------------------------------------------
Avg over all inputs
---------------------------------------------------
----- ------- ----------- ---
david 543 0.46 ms py
ayoub 445 4.94 ms cpp
----- ------- ----------- ---
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Running submissions for day 02:
* part 1:
---------------------------------------------------
Avg over all inputs
---------------------------------------------------
----- -------- ----------- ---
david 5658 1.22 ms py
ayoub 6448 4.84 ms cpp
----- -------- ----------- ---
You can use -r
to run each submission on it's own input, or -e
to print non-aggregated results.
see ./aoc run -h
for full arguments description.
To participate, you'll have to create your own files containing your solutions (see next sections for details on how to create them).
You can add other functions & modules if you need to. Any external dependency should be added to the appropriate files (requirements.txt
, package.json
, and so on).
Once you tested your solution you can submit it by making a PR and a GitHub action will check that your code generates the same outputs as others' code.
For now we support c
, c++
, java
, javascript
(with node and deno), typescript
(with deno) , go
, python 3
(+ cython
), ruby
, rust (stable)
, julia
, bash
, nim
, v
,zig
and ocaml
scripts.
You can use ./aoc create
tool to create a new empty submission:
usage: aoc create [-h] [-a AUTHOR] [-d DAY] [-p PART]
[-l {c,cpp,go,intcode,java,js,deno.js,deno.ts,ml,nim,py,pyx,rb,rs,sh,v,zig}]
Create a new submission
optional arguments:
-a AUTHOR, --author AUTHOR
submission author
-d DAY, --day DAY problem day
-p PART, --part PART problem part
-l {c,cpp,go,intcode,java,js,deno.js,deno.ts,ml,nim,py,pyx,rb,rs,sh,v,zig}, --language {c,cpp,go,intcode,java,js,deno.js,deno.ts,ml,nim,py,pyx,rb,rs,sh,v,zig}
submission language
you can also use ./aoc config
to setup your local profile
usage: aoc config [-h] username {c,cpp,go,intcode,java,js,deno.js,deno.ts,ml,nim,py,pyx,rb,rs,sh,v,zig}
Configures user parameters
positional arguments:
username prefered username
{c,cpp,go,intcode,java,js,deno.js,deno.ts,ml,nim,py,pyx,rb,rs,sh,v,zig}
prefered programming language
If you don't use ./aoc create
tool you should follow this convention:
day-[number]/part-[number]/[username].py # your submission code
day-[number]/input/[username].txt # your input file
Your submission code should follow templates written in the tool/templates/
folder (there is one for each language).
brew install go
Follow: https://www.rust-lang.org/tools/install
brew install node
brew install deno
or
curl -fsSL https://deno.land/x/install/install.sh | sh
brew install nim
install esy, esy will take care of installing ocaml and building the dependencies on the first execution (might take a while)
npm install -g esy