From e3d6b622dcbbbd327b0c66a126e0126e86bd9ff6 Mon Sep 17 00:00:00 2001 From: Bruno Raoult Date: Tue, 11 Oct 2022 16:51:06 +0200 Subject: [PATCH] 2020 day 25 (C): just copied my (lazy/brute-force) bash solution --- 2020/RESULTS.txt | 9 +++ 2020/day19/ex1-c.c | 167 ++------------------------------------------ 2020/day25/Makefile | 12 ++-- 3 files changed, 20 insertions(+), 168 deletions(-) diff --git a/2020/RESULTS.txt b/2020/RESULTS.txt index e1e35e2..541542a 100644 --- a/2020/RESULTS.txt +++ b/2020/RESULTS.txt @@ -490,10 +490,12 @@ ex2.bash: res=32760 ================= day23 ================= ========================================= ++++++++++++++++++ ex1 ex1.bash: res=75893264 time: 0:00.01 real, 0.01 user, 0.00 sys context-switch: 0+1, page-faults: 0+166 ++++++++++++++++++ ex2 ex2.bash: res=38162588308 time: 6:52.50 real, 412.30 user, 0.14 sys context-switch: 2219+1, page-faults: 0+30233 @@ -502,10 +504,12 @@ ex2.bash: res=38162588308 ================= day24 ================= ========================================= ++++++++++++++++++ ex1 ex1.bash: res=450 time: 0:00.17 real, 0.17 user, 0.00 sys context-switch: 5+1, page-faults: 0+177 ++++++++++++++++++ ex2 ex2.bash: res=4059 time: 0:22.35 real, 22.22 user, 0.07 sys context-switch: 1471+1, page-faults: 0+858 @@ -514,6 +518,11 @@ ex2.bash: res=4059 ================= day25 ================= ========================================= ++++++++++++++++++ ex1 ex1.bash: res=9620012 time: 2:42.30 real, 162.05 user, 0.08 sys context-switch: 3634+1, page-faults: 0+163 + +ex1-c : res=9620012 + time: 0:00.08 real, 0.08 user, 0.00 sys + context-switch: 2+1, page-faults: 0+79 diff --git a/2020/day19/ex1-c.c b/2020/day19/ex1-c.c index a852599..7cf7494 100644 --- a/2020/day19/ex1-c.c +++ b/2020/day19/ex1-c.c @@ -1,4 +1,4 @@ -/* ex1-c: Advent2020 game, day 18/tasks 1 & 2 +/* ex1-c: Advent2020 game, day 19/tasks 1 & 2 */ #include @@ -6,168 +6,11 @@ #include #include -#define T_LPAR (-'(') -#define T_RPAR (-')') - -#define T_PLUS (-'+') -#define T_MULT (-'*') - -#define T_ERR (-'E') -#define T_OK (-'O') -#define T_END (-'$') - -#define LEN_MAX 1024 - -#define NPUSH(n) (push(&nstack, (n))) -#define OPUSH(o) (push(&ostack, (o))) - -#define NPOP() (pop(&nstack)) -#define OPOP() (pop(&ostack)) - -#define NTOP() (top(&nstack)) -#define OTOP() (top(&ostack)) - -#define OEMPTY() (empty(&ostack)) - -#define DIGIT(c) (((c) >= '0') && ((c) <= '9')) - -static struct stack { - int last; - long elt[LEN_MAX]; -} nstack, ostack; - -static char *saveptr=NULL; - -static int prio_1(long op) -{ - return op==T_PLUS || op==T_MULT? 1: 0; -} -static int prio_2(long op) -{ - return op==T_PLUS? 2: op==T_MULT? 1: 0; -} -static int (*prio)()=&prio_1; - -static long push(struct stack *s, long val) -{ - s->elt[s->last++]=val; - return val; -} -static long pop(struct stack *s) -{ - return s->elt[--s->last]; -} -static long top(struct stack *s) -{ - return s->elt[s->last-1]; -} -static long empty(struct stack *s) -{ - return s->last==0; -} - -static void print() { - int i; - printf("NSTACK: "); - for (i=0; i= (*prio)(res)) - eval_top(); - OPUSH(res); - break; - - default: - NPUSH(res); - break; - } - res=get_tok(); - //print(); - } - while(!OEMPTY()) - eval_top(); - - // return NSTACK's top - //printf("Returning %ld\n", NTOP()); - return NPOP(); -//end: -// return left; -} +struct rule { + struct rule *left; + struct rule *right; +}; int main(ac, av) int ac; char **av; diff --git a/2020/day25/Makefile b/2020/day25/Makefile index 97d4782..b41022d 100644 --- a/2020/day25/Makefile +++ b/2020/day25/Makefile @@ -1,6 +1,6 @@ INPUT := INPUT.txt SHELL := /bin/bash -CFLAGS := -w -g +CFLAGS := -w -g -O3 #CFLAGS := -w -g -pg #CFLAGS := -w -O3 TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n" @@ -13,15 +13,15 @@ all: ex1 output: @$(MAKE) --no-print-directory all 2>&1 > OUTPUT -compile: ex1-c ex2-c +compile: ex1-c -ex1: +ex1: ex1-c @$(TIME) ex1.bash < $(INPUT) 2>&1 - @#$(TIME) ex1-c 2020 < $(INPUT) 2>&1 + @$(TIME) ex1-c < $(INPUT) 2>&1 ex2: - @$(TIME) ex2.bash < $(INPUT) 2>&1 - @#$(TIME) ex1-c 30000000 < $(INPUT) 2>&1 + @#$(TIME) ex2.bash < $(INPUT) 2>&1 + @#$(TIME) ex1-c < $(INPUT) 2>&1 clean: @rm -f ex1-c ex2-c core