2022/day 5 init
This commit is contained in:
111
2022/day05/Makefile
Normal file
111
2022/day05/Makefile
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
# AOC daily Makefile - GNU make only.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2021-2022 Bruno Raoult ("br")
|
||||||
|
# Licensed under the GNU General Public License v3.0 or later.
|
||||||
|
# Some rights reserved. See COPYING.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with this
|
||||||
|
# program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||||
|
#
|
||||||
|
|
||||||
|
INPUT := input/input.txt
|
||||||
|
SHELL := /bin/bash
|
||||||
|
|
||||||
|
CC := gcc
|
||||||
|
BEAR := bear
|
||||||
|
CCLSFILE:= compile_commands.json
|
||||||
|
|
||||||
|
LIB := aoc_$(shell uname -m)
|
||||||
|
INCDIR := ../include
|
||||||
|
LIBDIR := ../lib
|
||||||
|
LDFLAGS := -L$(LIBDIR)
|
||||||
|
#LDLIB := -l$(LIB) -lm
|
||||||
|
LDLIB := -l$(LIB)
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH = $(LIBDIR)
|
||||||
|
|
||||||
|
CFLAGS += -std=gnu11
|
||||||
|
CFLAGS += -O2
|
||||||
|
CFLAGS += -g
|
||||||
|
# for gprof
|
||||||
|
# CFLAGS += -pg
|
||||||
|
CFLAGS += -Wall
|
||||||
|
CFLAGS += -Wextra
|
||||||
|
CFLAGS += -march=native
|
||||||
|
# Next one may be useful for valgrind (some invalid instructions)
|
||||||
|
# CFLAGS += -mno-tbm
|
||||||
|
CFLAGS += -Wmissing-declarations
|
||||||
|
CFLAGS += -Wno-unused-result
|
||||||
|
|
||||||
|
CFLAGS += -DDEBUG_DEBUG # activate general debug (debug.c)
|
||||||
|
CFLAGS += -DDEBUG_POOL # memory pools management
|
||||||
|
|
||||||
|
VALGRIND := valgrind
|
||||||
|
VALGRINDFLAGS := --leak-check=full --show-leak-kinds=all --track-origins=yes \
|
||||||
|
--sigill-diagnostics=yes --quiet --show-error-list=yes
|
||||||
|
|
||||||
|
|
||||||
|
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
||||||
|
export PATH := .:$(PATH)
|
||||||
|
|
||||||
|
.PHONY: clean all compile assembly memcheck memcheck1 memcheck2 part1 part2 ccls bear org
|
||||||
|
|
||||||
|
all: README.org ccls part1 part2
|
||||||
|
|
||||||
|
memcheck: memcheck1 memcheck2
|
||||||
|
|
||||||
|
memcheck1: aoc-c
|
||||||
|
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 1 < $(INPUT)
|
||||||
|
|
||||||
|
memcheck2: aoc-c
|
||||||
|
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 2 < $(INPUT)
|
||||||
|
@#@valgrind -s --track-origins=yes aoc-c -p 2 < $(INPUT)
|
||||||
|
|
||||||
|
compile: aoc-c
|
||||||
|
|
||||||
|
cpp: aoc-c.i
|
||||||
|
|
||||||
|
assembly: aoc-c.s
|
||||||
|
|
||||||
|
part1: aoc-c
|
||||||
|
@$(TIME) aoc.bash -p 1 < $(INPUT) 2>&1
|
||||||
|
@$(TIME) aoc-c -p 1 < $(INPUT)
|
||||||
|
|
||||||
|
part2: aoc-c
|
||||||
|
@$(TIME) aoc.bash -p 2 < $(INPUT) 2>&1
|
||||||
|
@$(TIME) aoc-c -p 2 < $(INPUT)
|
||||||
|
|
||||||
|
ccls: $(CCLSFILE)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -f aoc-c core* vgcore* gmon.out aoc-c.s aoc-c.i README.html compile_commands.json
|
||||||
|
|
||||||
|
aoc-c: aoc-c.c common.c
|
||||||
|
@echo compiling $<
|
||||||
|
$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $^ $(LDLIB) -o $@
|
||||||
|
|
||||||
|
# generate pre-processed file (.i) and assembler (.s)
|
||||||
|
%.i: %.c
|
||||||
|
@echo generating $@
|
||||||
|
@$(CC) -E $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||||
|
|
||||||
|
%.s: %.c
|
||||||
|
@echo generating $@
|
||||||
|
@$(CC) -S -fverbose-asm $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||||
|
|
||||||
|
# generate README.org from README.html (must cleanup !)
|
||||||
|
org: README.org
|
||||||
|
|
||||||
|
%.org: %.html
|
||||||
|
@echo generating $@. Cleanup before commit !
|
||||||
|
@pandoc $< -o $@
|
||||||
|
|
||||||
|
# generate compile_commands.json
|
||||||
|
$(CCLSFILE): aoc-c.c Makefile
|
||||||
|
$(BEAR) -- make clean compile
|
||||||
|
|
||||||
|
bear: clean
|
||||||
|
@touch .ccls-root
|
||||||
|
@$(BEAR) -- make compile
|
91
2022/day05/README.org
Normal file
91
2022/day05/README.org
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
** --- Day 5: Supply Stacks ---
|
||||||
|
The expedition can depart as soon as the final supplies have been
|
||||||
|
unloaded from the ships. Supplies are stored in stacks of marked
|
||||||
|
/crates/, but because the needed supplies are buried under many other
|
||||||
|
crates, the crates need to be rearranged.
|
||||||
|
|
||||||
|
The ship has a /giant cargo crane/ capable of moving crates between
|
||||||
|
stacks. To ensure none of the crates get crushed or fall over, the crane
|
||||||
|
operator will rearrange them in a series of carefully-planned steps.
|
||||||
|
After the crates are rearranged, the desired crates will be at the top
|
||||||
|
of each stack.
|
||||||
|
|
||||||
|
The Elves don't want to interrupt the crane operator during this
|
||||||
|
delicate procedure, but they forgot to ask her /which/ crate will end up
|
||||||
|
where, and they want to be ready to unload them as soon as possible so
|
||||||
|
they can embark.
|
||||||
|
|
||||||
|
They do, however, have a drawing of the starting stacks of crates /and/
|
||||||
|
the rearrangement procedure (your puzzle input). For example:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
[D]
|
||||||
|
[N] [C]
|
||||||
|
[Z] [M] [P]
|
||||||
|
1 2 3
|
||||||
|
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 1 from 1 to 2
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
In this example, there are three stacks of crates. Stack 1 contains two
|
||||||
|
crates: crate =Z= is on the bottom, and crate =N= is on top. Stack 2
|
||||||
|
contains three crates; from bottom to top, they are crates =M=, =C=, and
|
||||||
|
=D=. Finally, stack 3 contains a single crate, =P=.
|
||||||
|
|
||||||
|
Then, the rearrangement procedure is given. In each step of the
|
||||||
|
procedure, a quantity of crates is moved from one stack to a different
|
||||||
|
stack. In the first step of the above rearrangement procedure, one crate
|
||||||
|
is moved from stack 2 to stack 1, resulting in this configuration:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
[D]
|
||||||
|
[N] [C]
|
||||||
|
[Z] [M] [P]
|
||||||
|
1 2 3
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
In the second step, three crates are moved from stack 1 to stack 3.
|
||||||
|
Crates are moved /one at a time/, so the first crate to be moved (=D=)
|
||||||
|
ends up below the second and third crates:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
[Z]
|
||||||
|
[N]
|
||||||
|
[C] [D]
|
||||||
|
[M] [P]
|
||||||
|
1 2 3
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
Then, both crates are moved from stack 2 to stack 1. Again, because
|
||||||
|
crates are moved /one at a time/, crate =C= ends up below crate =M=:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
[Z]
|
||||||
|
[N]
|
||||||
|
[M] [D]
|
||||||
|
[C] [P]
|
||||||
|
1 2 3
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
Finally, one crate is moved from stack 1 to stack 2:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
[Z]
|
||||||
|
[N]
|
||||||
|
[D]
|
||||||
|
[C] [M] [P]
|
||||||
|
1 2 3
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
The Elves just need to know /which crate will end up on top of each
|
||||||
|
stack/; in this example, the top crates are =C= in stack 1, =M= in stack
|
||||||
|
2, and =Z= in stack 3, so you should combine these together and give the
|
||||||
|
Elves the message =CMZ=.
|
||||||
|
|
||||||
|
/After the rearrangement procedure completes, what crate ends up on top
|
||||||
|
of each stack?/
|
||||||
|
|
||||||
|
To begin, [[file:5/input][get your puzzle input]].
|
17
2022/day05/aoc.h
Normal file
17
2022/day05/aoc.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/* aoc.c: Advent of Code 2022
|
||||||
|
*
|
||||||
|
* Copyright (C) 2022 Bruno Raoult ("br")
|
||||||
|
* Licensed under the GNU General Public License v3.0 or later.
|
||||||
|
* Some rights reserved. See COPYING.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this
|
||||||
|
* program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||||
|
*/
|
||||||
|
#ifndef _AOC_H_
|
||||||
|
#define _AOC_H_
|
||||||
|
|
||||||
|
extern int parseargs(int ac, char**av);
|
||||||
|
|
||||||
|
#endif /* _AOC_H_ */
|
67
2022/day05/common.bash
Executable file
67
2022/day05/common.bash
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# common.bash: Advent of Code 2022, common bash functions
|
||||||
|
#
|
||||||
|
# Copyright (C) 2022 Bruno Raoult ("br")
|
||||||
|
# Licensed under the GNU General Public License v3.0 or later.
|
||||||
|
# Some rights reserved. See COPYING.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with this
|
||||||
|
# program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||||
|
|
||||||
|
# shellcheck disable=2034
|
||||||
|
export cmdname=${0##*/}
|
||||||
|
export debug=0
|
||||||
|
export res
|
||||||
|
|
||||||
|
shopt -s extglob
|
||||||
|
set -o noglob
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
printf "usage: %s [-d DEBUG] [-p PART]\n" "$cmdname"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
checkargs() {
|
||||||
|
local part=1
|
||||||
|
while getopts p:d: todo; do
|
||||||
|
case "$todo" in
|
||||||
|
d)
|
||||||
|
if [[ "$OPTARG" =~ ^[[:digit:]+]$ ]]; then
|
||||||
|
debug="$OPTARG"
|
||||||
|
else
|
||||||
|
printf "%s: illegal [%s] debug level.\n" "$CMD" "$OPTARG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
p)
|
||||||
|
if [[ "$OPTARG" =~ ^[12]$ ]]; then
|
||||||
|
part="$OPTARG"
|
||||||
|
else
|
||||||
|
printf "%s: illegal [%s] part.\n" "$CMD" "$OPTARG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
# Now check remaining argument (backup directory)
|
||||||
|
shift $((OPTIND - 1))
|
||||||
|
|
||||||
|
(( $# > 1 )) && usage
|
||||||
|
return "$part"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local -i part
|
||||||
|
|
||||||
|
checkargs "$@"
|
||||||
|
part=$?
|
||||||
|
parse "$part"
|
||||||
|
solve "$part"
|
||||||
|
printf "%s: res=%s\n" "$cmdname" "$res"
|
||||||
|
}
|
49
2022/day05/common.c
Normal file
49
2022/day05/common.c
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
/* common.c: Advent of Code 2022, common functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2022 Bruno Raoult ("br")
|
||||||
|
* Licensed under the GNU General Public License v3.0 or later.
|
||||||
|
* Some rights reserved. See COPYING.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this
|
||||||
|
* program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "aoc.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
static int usage(char *prg)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Usage: %s [-d debug_level] [-p part] [-i input]\n", prg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int parseargs(int ac, char **av)
|
||||||
|
{
|
||||||
|
int opt, part = 1;
|
||||||
|
|
||||||
|
while ((opt = getopt(ac, av, "d:p:")) != -1) {
|
||||||
|
switch (opt) {
|
||||||
|
case 'd':
|
||||||
|
debug_level_set(atoi(optarg));
|
||||||
|
break;
|
||||||
|
case 'p': /* 1 or 2 */
|
||||||
|
part = atoi(optarg);
|
||||||
|
if (part < 1 || part > 2)
|
||||||
|
return usage(*av);
|
||||||
|
break;
|
||||||
|
case 'i':
|
||||||
|
|
||||||
|
default:
|
||||||
|
return usage(*av);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (optind < ac)
|
||||||
|
return usage(*av);
|
||||||
|
return part;
|
||||||
|
}
|
9
2022/day05/input/example.txt
Normal file
9
2022/day05/input/example.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[D]
|
||||||
|
[N] [C]
|
||||||
|
[Z] [M] [P]
|
||||||
|
1 2 3
|
||||||
|
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 1 from 1 to 2
|
511
2022/day05/input/input.txt
Normal file
511
2022/day05/input/input.txt
Normal file
@@ -0,0 +1,511 @@
|
|||||||
|
[L] [M] [M]
|
||||||
|
[D] [R] [Z] [C] [L]
|
||||||
|
[C] [S] [T] [G] [V] [M]
|
||||||
|
[R] [L] [Q] [B] [B] [D] [F]
|
||||||
|
[H] [B] [G] [D] [Q] [Z] [T] [J]
|
||||||
|
[M] [J] [H] [M] [P] [S] [V] [L] [N]
|
||||||
|
[P] [C] [N] [T] [S] [F] [R] [G] [Q]
|
||||||
|
[Z] [P] [S] [F] [F] [T] [N] [P] [W]
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
move 7 from 3 to 9
|
||||||
|
move 5 from 8 to 9
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 6 from 9 to 2
|
||||||
|
move 9 from 9 to 3
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 8 from 2 to 3
|
||||||
|
move 9 from 3 to 1
|
||||||
|
move 11 from 3 to 8
|
||||||
|
move 5 from 6 to 9
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 1 from 3 to 9
|
||||||
|
move 4 from 4 to 3
|
||||||
|
move 6 from 8 to 3
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 4 from 9 to 3
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 5 from 3 to 4
|
||||||
|
move 11 from 1 to 4
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 2 from 1 to 9
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 7 from 5 to 8
|
||||||
|
move 21 from 4 to 6
|
||||||
|
move 6 from 6 to 2
|
||||||
|
move 6 from 8 to 9
|
||||||
|
move 5 from 8 to 5
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 4 from 3 to 7
|
||||||
|
move 1 from 4 to 6
|
||||||
|
move 9 from 5 to 3
|
||||||
|
move 7 from 3 to 4
|
||||||
|
move 7 from 7 to 3
|
||||||
|
move 7 from 4 to 1
|
||||||
|
move 8 from 3 to 5
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 3 from 8 to 2
|
||||||
|
move 2 from 2 to 9
|
||||||
|
move 13 from 9 to 4
|
||||||
|
move 5 from 5 to 3
|
||||||
|
move 4 from 7 to 6
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 2 from 4 to 2
|
||||||
|
move 3 from 3 to 4
|
||||||
|
move 2 from 5 to 2
|
||||||
|
move 6 from 1 to 7
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 24 from 6 to 1
|
||||||
|
move 3 from 2 to 3
|
||||||
|
move 3 from 3 to 5
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 7 from 4 to 8
|
||||||
|
move 3 from 8 to 9
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 5 from 7 to 5
|
||||||
|
move 2 from 3 to 1
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 7 from 4 to 7
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 6 from 8 to 6
|
||||||
|
move 3 from 6 to 9
|
||||||
|
move 10 from 5 to 1
|
||||||
|
move 7 from 7 to 1
|
||||||
|
move 1 from 4 to 9
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 9 to 5
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 39 from 1 to 8
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 3 from 1 to 6
|
||||||
|
move 1 from 7 to 2
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 2 from 6 to 2
|
||||||
|
move 3 from 2 to 3
|
||||||
|
move 1 from 6 to 2
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 3 from 2 to 4
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 2 from 3 to 8
|
||||||
|
move 8 from 5 to 2
|
||||||
|
move 8 from 8 to 2
|
||||||
|
move 15 from 2 to 7
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 25 from 8 to 7
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 1 from 8 to 4
|
||||||
|
move 2 from 4 to 6
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 26 from 7 to 2
|
||||||
|
move 15 from 2 to 1
|
||||||
|
move 7 from 8 to 9
|
||||||
|
move 10 from 1 to 6
|
||||||
|
move 10 from 7 to 2
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 5 from 9 to 8
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 1 from 7 to 1
|
||||||
|
move 5 from 9 to 2
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 9 from 6 to 3
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 4 from 2 to 4
|
||||||
|
move 3 from 4 to 8
|
||||||
|
move 1 from 4 to 1
|
||||||
|
move 9 from 3 to 1
|
||||||
|
move 1 from 7 to 6
|
||||||
|
move 9 from 2 to 5
|
||||||
|
move 14 from 1 to 6
|
||||||
|
move 1 from 3 to 8
|
||||||
|
move 5 from 2 to 6
|
||||||
|
move 8 from 1 to 8
|
||||||
|
move 6 from 6 to 8
|
||||||
|
move 14 from 6 to 7
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 10 from 5 to 4
|
||||||
|
move 11 from 8 to 5
|
||||||
|
move 15 from 7 to 1
|
||||||
|
move 4 from 5 to 6
|
||||||
|
move 4 from 8 to 9
|
||||||
|
move 6 from 5 to 3
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 2 from 6 to 2
|
||||||
|
move 6 from 1 to 5
|
||||||
|
move 1 from 5 to 8
|
||||||
|
move 2 from 5 to 4
|
||||||
|
move 9 from 2 to 9
|
||||||
|
move 13 from 9 to 8
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 4 to 8
|
||||||
|
move 3 from 3 to 1
|
||||||
|
move 2 from 4 to 5
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 17 from 8 to 1
|
||||||
|
move 3 from 3 to 2
|
||||||
|
move 4 from 5 to 1
|
||||||
|
move 2 from 2 to 4
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 1 from 2 to 8
|
||||||
|
move 4 from 4 to 6
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 5 from 6 to 8
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 3 from 8 to 6
|
||||||
|
move 8 from 4 to 5
|
||||||
|
move 32 from 1 to 7
|
||||||
|
move 11 from 7 to 6
|
||||||
|
move 8 from 5 to 3
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 6 from 3 to 9
|
||||||
|
move 4 from 3 to 8
|
||||||
|
move 5 from 8 to 2
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 11 from 6 to 3
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 12 from 7 to 8
|
||||||
|
move 2 from 6 to 2
|
||||||
|
move 2 from 6 to 4
|
||||||
|
move 5 from 2 to 5
|
||||||
|
move 8 from 7 to 2
|
||||||
|
move 2 from 7 to 1
|
||||||
|
move 2 from 7 to 6
|
||||||
|
move 5 from 5 to 4
|
||||||
|
move 5 from 4 to 7
|
||||||
|
move 5 from 8 to 2
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 5 from 8 to 4
|
||||||
|
move 2 from 7 to 3
|
||||||
|
move 2 from 9 to 3
|
||||||
|
move 3 from 7 to 9
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 2 from 6 to 1
|
||||||
|
move 2 from 9 to 8
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 2 to 5
|
||||||
|
move 1 from 7 to 9
|
||||||
|
move 7 from 4 to 3
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 5 from 8 to 6
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 16 from 3 to 1
|
||||||
|
move 2 from 9 to 1
|
||||||
|
move 7 from 1 to 8
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 5 from 8 to 2
|
||||||
|
move 12 from 1 to 4
|
||||||
|
move 1 from 3 to 5
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 4 from 6 to 5
|
||||||
|
move 5 from 6 to 1
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 1 from 3 to 7
|
||||||
|
move 9 from 4 to 6
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 2 from 8 to 9
|
||||||
|
move 4 from 8 to 4
|
||||||
|
move 4 from 2 to 8
|
||||||
|
move 2 from 9 to 7
|
||||||
|
move 2 from 7 to 8
|
||||||
|
move 10 from 2 to 4
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 5 from 4 to 7
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 6 from 7 to 2
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 1 from 6 to 7
|
||||||
|
move 5 from 5 to 8
|
||||||
|
move 4 from 1 to 3
|
||||||
|
move 4 from 3 to 1
|
||||||
|
move 8 from 4 to 2
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 2 from 7 to 2
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 4 from 7 to 2
|
||||||
|
move 4 from 5 to 7
|
||||||
|
move 14 from 2 to 7
|
||||||
|
move 3 from 2 to 1
|
||||||
|
move 3 from 8 to 2
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 6 from 2 to 4
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 6 from 8 to 2
|
||||||
|
move 4 from 6 to 4
|
||||||
|
move 2 from 6 to 9
|
||||||
|
move 4 from 4 to 2
|
||||||
|
move 2 from 4 to 8
|
||||||
|
move 10 from 7 to 2
|
||||||
|
move 18 from 2 to 6
|
||||||
|
move 2 from 2 to 6
|
||||||
|
move 2 from 9 to 2
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 2 from 9 to 2
|
||||||
|
move 6 from 7 to 3
|
||||||
|
move 7 from 6 to 8
|
||||||
|
move 5 from 7 to 2
|
||||||
|
move 1 from 7 to 4
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 4 from 8 to 7
|
||||||
|
move 5 from 2 to 3
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 9 from 4 to 3
|
||||||
|
move 13 from 6 to 8
|
||||||
|
move 10 from 3 to 1
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 3 from 6 to 8
|
||||||
|
move 5 from 1 to 2
|
||||||
|
move 1 from 1 to 8
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 17 from 8 to 6
|
||||||
|
move 5 from 6 to 3
|
||||||
|
move 3 from 1 to 2
|
||||||
|
move 9 from 6 to 5
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 3 from 9 to 8
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 3 from 7 to 5
|
||||||
|
move 6 from 5 to 8
|
||||||
|
move 7 from 2 to 4
|
||||||
|
move 1 from 6 to 3
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 4 from 4 to 5
|
||||||
|
move 2 from 2 to 9
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 1 from 4 to 5
|
||||||
|
move 6 from 8 to 7
|
||||||
|
move 1 from 5 to 2
|
||||||
|
move 4 from 9 to 2
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 2 from 4 to 9
|
||||||
|
move 6 from 7 to 5
|
||||||
|
move 3 from 5 to 2
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 10 from 8 to 3
|
||||||
|
move 2 from 8 to 5
|
||||||
|
move 3 from 2 to 5
|
||||||
|
move 6 from 5 to 1
|
||||||
|
move 4 from 5 to 6
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 23 from 3 to 7
|
||||||
|
move 2 from 5 to 9
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 6 from 3 to 1
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 4 from 3 to 1
|
||||||
|
move 1 from 8 to 5
|
||||||
|
move 2 from 9 to 2
|
||||||
|
move 3 from 3 to 8
|
||||||
|
move 2 from 6 to 8
|
||||||
|
move 12 from 1 to 3
|
||||||
|
move 1 from 9 to 7
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 9 from 3 to 8
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 1 from 9 to 4
|
||||||
|
move 3 from 3 to 6
|
||||||
|
move 3 from 2 to 1
|
||||||
|
move 3 from 8 to 6
|
||||||
|
move 1 from 4 to 2
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 1 from 2 to 7
|
||||||
|
move 20 from 7 to 5
|
||||||
|
move 3 from 7 to 3
|
||||||
|
move 3 from 1 to 3
|
||||||
|
move 5 from 8 to 1
|
||||||
|
move 5 from 1 to 5
|
||||||
|
move 4 from 5 to 2
|
||||||
|
move 3 from 2 to 6
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 2 from 8 to 6
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 2 from 3 to 6
|
||||||
|
move 12 from 5 to 1
|
||||||
|
move 6 from 5 to 7
|
||||||
|
move 12 from 6 to 8
|
||||||
|
move 4 from 9 to 3
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 3 from 1 to 5
|
||||||
|
move 4 from 7 to 4
|
||||||
|
move 3 from 5 to 9
|
||||||
|
move 7 from 1 to 6
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 6 from 7 to 6
|
||||||
|
move 1 from 1 to 3
|
||||||
|
move 10 from 3 to 6
|
||||||
|
move 10 from 6 to 2
|
||||||
|
move 2 from 9 to 5
|
||||||
|
move 4 from 6 to 5
|
||||||
|
move 9 from 6 to 1
|
||||||
|
move 16 from 8 to 7
|
||||||
|
move 3 from 8 to 7
|
||||||
|
move 1 from 8 to 1
|
||||||
|
move 7 from 2 to 1
|
||||||
|
move 1 from 5 to 9
|
||||||
|
move 1 from 6 to 1
|
||||||
|
move 2 from 2 to 1
|
||||||
|
move 3 from 1 to 4
|
||||||
|
move 1 from 6 to 8
|
||||||
|
move 7 from 4 to 1
|
||||||
|
move 1 from 8 to 2
|
||||||
|
move 22 from 1 to 8
|
||||||
|
move 18 from 7 to 9
|
||||||
|
move 6 from 5 to 2
|
||||||
|
move 2 from 2 to 7
|
||||||
|
move 2 from 1 to 5
|
||||||
|
move 4 from 7 to 6
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 2 from 8 to 2
|
||||||
|
move 3 from 2 to 6
|
||||||
|
move 1 from 5 to 6
|
||||||
|
move 15 from 9 to 6
|
||||||
|
move 6 from 9 to 5
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 2 to 9
|
||||||
|
move 5 from 5 to 9
|
||||||
|
move 9 from 8 to 6
|
||||||
|
move 3 from 2 to 7
|
||||||
|
move 12 from 8 to 9
|
||||||
|
move 1 from 7 to 5
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 17 from 6 to 3
|
||||||
|
move 1 from 2 to 6
|
||||||
|
move 2 from 1 to 4
|
||||||
|
move 16 from 6 to 4
|
||||||
|
move 7 from 4 to 6
|
||||||
|
move 1 from 5 to 7
|
||||||
|
move 8 from 4 to 5
|
||||||
|
move 9 from 9 to 8
|
||||||
|
move 16 from 3 to 7
|
||||||
|
move 1 from 1 to 5
|
||||||
|
move 3 from 5 to 1
|
||||||
|
move 5 from 6 to 2
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 3 from 6 to 7
|
||||||
|
move 3 from 9 to 3
|
||||||
|
move 5 from 8 to 5
|
||||||
|
move 11 from 5 to 7
|
||||||
|
move 2 from 3 to 7
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 17 from 7 to 9
|
||||||
|
move 1 from 3 to 2
|
||||||
|
move 3 from 4 to 6
|
||||||
|
move 1 from 1 to 2
|
||||||
|
move 1 from 6 to 4
|
||||||
|
move 14 from 7 to 6
|
||||||
|
move 15 from 9 to 6
|
||||||
|
move 4 from 8 to 7
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 7 from 9 to 5
|
||||||
|
move 5 from 2 to 9
|
||||||
|
move 7 from 5 to 1
|
||||||
|
move 3 from 1 to 7
|
||||||
|
move 29 from 6 to 4
|
||||||
|
move 1 from 2 to 4
|
||||||
|
move 18 from 4 to 2
|
||||||
|
move 3 from 1 to 4
|
||||||
|
move 1 from 1 to 7
|
||||||
|
move 18 from 2 to 4
|
||||||
|
move 3 from 6 to 5
|
||||||
|
move 15 from 4 to 1
|
||||||
|
move 1 from 5 to 1
|
||||||
|
move 1 from 5 to 4
|
||||||
|
move 9 from 4 to 1
|
||||||
|
move 5 from 1 to 3
|
||||||
|
move 9 from 1 to 5
|
||||||
|
move 2 from 4 to 3
|
||||||
|
move 5 from 5 to 6
|
||||||
|
move 3 from 7 to 9
|
||||||
|
move 7 from 7 to 5
|
||||||
|
move 6 from 4 to 6
|
||||||
|
move 2 from 3 to 7
|
||||||
|
move 6 from 5 to 8
|
||||||
|
move 2 from 8 to 4
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 9 from 6 to 2
|
||||||
|
move 3 from 9 to 3
|
||||||
|
move 1 from 2 to 1
|
||||||
|
move 6 from 7 to 4
|
||||||
|
move 2 from 2 to 8
|
||||||
|
move 3 from 9 to 5
|
||||||
|
move 5 from 4 to 8
|
||||||
|
move 1 from 6 to 9
|
||||||
|
move 1 from 3 to 1
|
||||||
|
move 1 from 3 to 4
|
||||||
|
move 1 from 6 to 5
|
||||||
|
move 1 from 9 to 3
|
||||||
|
move 10 from 8 to 7
|
||||||
|
move 3 from 9 to 2
|
||||||
|
move 7 from 2 to 4
|
||||||
|
move 6 from 5 to 7
|
||||||
|
move 4 from 5 to 8
|
||||||
|
move 7 from 3 to 2
|
||||||
|
move 3 from 7 to 1
|
||||||
|
move 9 from 1 to 5
|
||||||
|
move 5 from 7 to 9
|
||||||
|
move 7 from 1 to 4
|
||||||
|
move 11 from 4 to 2
|
||||||
|
move 4 from 8 to 3
|
||||||
|
move 5 from 4 to 7
|
||||||
|
move 4 from 4 to 1
|
||||||
|
move 1 from 3 to 6
|
||||||
|
move 12 from 7 to 4
|
||||||
|
move 2 from 1 to 8
|
||||||
|
move 5 from 9 to 7
|
||||||
|
move 7 from 5 to 6
|
||||||
|
move 1 from 1 to 4
|
||||||
|
move 1 from 9 to 8
|
||||||
|
move 1 from 4 to 7
|
||||||
|
move 1 from 8 to 9
|
||||||
|
move 5 from 7 to 9
|
||||||
|
move 2 from 7 to 5
|
||||||
|
move 2 from 6 to 3
|
||||||
|
move 5 from 2 to 7
|
||||||
|
move 1 from 7 to 8
|
||||||
|
move 1 from 1 to 6
|
||||||
|
move 3 from 5 to 1
|
8
env.sh
8
env.sh
@@ -5,3 +5,11 @@ export LD_LIBRARY_PATH=../lib
|
|||||||
# usage:
|
# usage:
|
||||||
# TIME command < inputfile
|
# TIME command < inputfile
|
||||||
alias TIME='\time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"'
|
alias TIME='\time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"'
|
||||||
|
|
||||||
|
# Get (move) ~/Downloads/Day* file to README.html in current directory, then
|
||||||
|
# run "make org"
|
||||||
|
org() {
|
||||||
|
mv ~/Downloads/Day* README.html
|
||||||
|
make org
|
||||||
|
rm README.html
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user