From 6e1a90e46bf2ad22b0c10f27541b0f7413cc2a7a Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Mon, 14 Dec 2015 13:55:24 +0100 Subject: day13 --- day13 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ day13.k | 24 ++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 day13 create mode 100644 day13.k diff --git a/day13 b/day13 new file mode 100644 index 0000000..35be357 --- /dev/null +++ b/day13 @@ -0,0 +1,56 @@ +Alice would gain 54 happiness units by sitting next to Bob. +Alice would lose 81 happiness units by sitting next to Carol. +Alice would lose 42 happiness units by sitting next to David. +Alice would gain 89 happiness units by sitting next to Eric. +Alice would lose 89 happiness units by sitting next to Frank. +Alice would gain 97 happiness units by sitting next to George. +Alice would lose 94 happiness units by sitting next to Mallory. +Bob would gain 3 happiness units by sitting next to Alice. +Bob would lose 70 happiness units by sitting next to Carol. +Bob would lose 31 happiness units by sitting next to David. +Bob would gain 72 happiness units by sitting next to Eric. +Bob would lose 25 happiness units by sitting next to Frank. +Bob would lose 95 happiness units by sitting next to George. +Bob would gain 11 happiness units by sitting next to Mallory. +Carol would lose 83 happiness units by sitting next to Alice. +Carol would gain 8 happiness units by sitting next to Bob. +Carol would gain 35 happiness units by sitting next to David. +Carol would gain 10 happiness units by sitting next to Eric. +Carol would gain 61 happiness units by sitting next to Frank. +Carol would gain 10 happiness units by sitting next to George. +Carol would gain 29 happiness units by sitting next to Mallory. +David would gain 67 happiness units by sitting next to Alice. +David would gain 25 happiness units by sitting next to Bob. +David would gain 48 happiness units by sitting next to Carol. +David would lose 65 happiness units by sitting next to Eric. +David would gain 8 happiness units by sitting next to Frank. +David would gain 84 happiness units by sitting next to George. +David would gain 9 happiness units by sitting next to Mallory. +Eric would lose 51 happiness units by sitting next to Alice. +Eric would lose 39 happiness units by sitting next to Bob. +Eric would gain 84 happiness units by sitting next to Carol. +Eric would lose 98 happiness units by sitting next to David. +Eric would lose 20 happiness units by sitting next to Frank. +Eric would lose 6 happiness units by sitting next to George. +Eric would gain 60 happiness units by sitting next to Mallory. +Frank would gain 51 happiness units by sitting next to Alice. +Frank would gain 79 happiness units by sitting next to Bob. +Frank would gain 88 happiness units by sitting next to Carol. +Frank would gain 33 happiness units by sitting next to David. +Frank would gain 43 happiness units by sitting next to Eric. +Frank would gain 77 happiness units by sitting next to George. +Frank would lose 3 happiness units by sitting next to Mallory. +George would lose 14 happiness units by sitting next to Alice. +George would lose 12 happiness units by sitting next to Bob. +George would lose 52 happiness units by sitting next to Carol. +George would gain 14 happiness units by sitting next to David. +George would lose 62 happiness units by sitting next to Eric. +George would lose 18 happiness units by sitting next to Frank. +George would lose 17 happiness units by sitting next to Mallory. +Mallory would lose 36 happiness units by sitting next to Alice. +Mallory would gain 76 happiness units by sitting next to Bob. +Mallory would lose 34 happiness units by sitting next to Carol. +Mallory would gain 37 happiness units by sitting next to David. +Mallory would gain 40 happiness units by sitting next to Eric. +Mallory would gain 18 happiness units by sitting next to Frank. +Mallory would gain 7 happiness units by sitting next to George. diff --git a/day13.k b/day13.k new file mode 100644 index 0000000..fc3cde0 --- /dev/null +++ b/day13.k @@ -0,0 +1,24 @@ +d:0:"day13"; + +d:-1 _' d; + +ss:{1 _' (&y=y,x) _ y,x}; / split x at y +l:ss[;" "]' d; + +perm: {:[1:'(x,x)#1,x#0)[;0,'1+_f x-1];,!x]}; + +happy:[]; +{ + .[`happy;`$x[0 10];:; :["gain"~x[2];1;-1]*0$x[3]] +}'l; + +ppl: !happy; +hs:{(+/happy':x,*x)+(+/happy':|x,*x)}'ppl@perm@#ppl; +|/hs / maximize happiness + +{.[`happy;`Me,x;:; 0]; + .[`happy;x,`Me;:; 0]}'ppl + +ppl: `Me,ppl; +hs:{(+/happy':x,*x)+(+/happy':|x,*x)}'ppl@perm@#ppl; +|/hs / maximize happiness -- cgit 1.4.1