From afdbc54c45a0f718d543871f127d55376f2021d2 Mon Sep 17 00:00:00 2001 From: Niklas Heim Date: Mon, 26 Feb 2024 16:44:25 +0100 Subject: [PATCH] Add first batch of exam tasks (#2) --- .vitepress/config.mts | 22 +- README.md | 1 + exams/building-trees/index.md | 253 ++++++++++++++ exams/building-trees/task.hs | 17 + exams/building-trees/task.rkt | 41 +++ exams/building-trees/trees.tex | 47 +++ exams/cheap-flights/cheap-flights.pdf | Bin 0 -> 39230 bytes exams/cheap-flights/graph.tex | 32 ++ exams/cheap-flights/index.md | 322 ++++++++++++++++++ exams/cheap-flights/task.hs | 47 +++ exams/cheap-flights/task.rkt | 58 ++++ exams/filetree/FTree.hs | 28 ++ exams/filetree/index.md | 276 +++++++++++++++ exams/filetree/simple.hs | 57 ++++ exams/filetree/task.hs | 59 ++++ exams/filetree/task.rkt | 44 +++ exams/finite-automata/dfa.tex | 27 ++ exams/finite-automata/index.md | 303 ++++++++++++++++ exams/finite-automata/task.rkt | 53 +++ exams/finite-automata/task3_4_en.pdf | Bin 0 -> 172122 bytes exams/index.md | 7 +- exams/justify/index.md | 304 +++++++++++++++++ exams/justify/task-advanced.rkt | 56 +++ exams/justify/task-basic.rkt | 88 +++++ exams/justify/task.hs | 67 ++++ exams/least-common-ancestor/index.md | 227 ++++++++++++ exams/least-common-ancestor/main_en.pdf | Bin 0 -> 76638 bytes .../least-common-ancestor/task3.reference.rkt | 32 ++ .../least-common-ancestor/task4.reference.hs | 28 ++ exams/least-common-ancestor/tree.tex | 27 ++ exams/manhattan-distance/index.md | 23 +- exams/manhattan-distance/task3.rkt | 8 + exams/minesweeper/index.md | 184 ++++++++++ exams/minesweeper/minesweeper.pdf | Bin 0 -> 158049 bytes exams/minesweeper/task.hs | 39 +++ exams/n2-knights/index.md | 186 ++++++++++ exams/n2-knights/n2-knights.html | 59 ++++ exams/n2-knights/task.hs | 43 +++ exams/photo-skyscraper/index.md | 146 ++++++++ exams/photo-skyscraper/main_en.pdf | Bin 0 -> 39264 bytes exams/photo-skyscraper/task3.reference.rkt | 32 ++ exams/photo-skyscraper/task4.reference.hs | 19 ++ img/building-trees-sequence.svg | 114 +++++++ img/cheap-flights-graph.svg | 98 ++++++ img/finite-automata-dfa.svg | 121 +++++++ img/least-common-ancestor-tree.svg | 69 ++++ img/n2-knights-max.png | Bin 0 -> 19817 bytes img/n2-knights.png | Bin 0 -> 23528 bytes organization.md | 1 + 49 files changed, 3661 insertions(+), 4 deletions(-) create mode 100644 exams/building-trees/index.md create mode 100644 exams/building-trees/task.hs create mode 100644 exams/building-trees/task.rkt create mode 100644 exams/building-trees/trees.tex create mode 100644 exams/cheap-flights/cheap-flights.pdf create mode 100644 exams/cheap-flights/graph.tex create mode 100644 exams/cheap-flights/index.md create mode 100644 exams/cheap-flights/task.hs create mode 100644 exams/cheap-flights/task.rkt create mode 100644 exams/filetree/FTree.hs create mode 100644 exams/filetree/index.md create mode 100644 exams/filetree/simple.hs create mode 100644 exams/filetree/task.hs create mode 100644 exams/filetree/task.rkt create mode 100644 exams/finite-automata/dfa.tex create mode 100644 exams/finite-automata/index.md create mode 100644 exams/finite-automata/task.rkt create mode 100644 exams/finite-automata/task3_4_en.pdf create mode 100644 exams/justify/index.md create mode 100644 exams/justify/task-advanced.rkt create mode 100644 exams/justify/task-basic.rkt create mode 100644 exams/justify/task.hs create mode 100644 exams/least-common-ancestor/index.md create mode 100644 exams/least-common-ancestor/main_en.pdf create mode 100644 exams/least-common-ancestor/task3.reference.rkt create mode 100644 exams/least-common-ancestor/task4.reference.hs create mode 100644 exams/least-common-ancestor/tree.tex create mode 100644 exams/minesweeper/index.md create mode 100644 exams/minesweeper/minesweeper.pdf create mode 100644 exams/minesweeper/task.hs create mode 100644 exams/n2-knights/index.md create mode 100644 exams/n2-knights/n2-knights.html create mode 100644 exams/n2-knights/task.hs create mode 100644 exams/photo-skyscraper/index.md create mode 100644 exams/photo-skyscraper/main_en.pdf create mode 100644 exams/photo-skyscraper/task3.reference.rkt create mode 100644 exams/photo-skyscraper/task4.reference.hs create mode 100644 img/building-trees-sequence.svg create mode 100644 img/cheap-flights-graph.svg create mode 100644 img/finite-automata-dfa.svg create mode 100644 img/least-common-ancestor-tree.svg create mode 100644 img/n2-knights-max.png create mode 100644 img/n2-knights.png diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 99f3a79..ab303dc 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -52,8 +52,28 @@ export default defineConfig({ { text: 'Exams', link: '/exams/', + collapsed: true, items: [ - { text: 'Manhattan distance', link: '/exams/manhattan-distance/' }, + { text: '1. Minesweeper', link: '/exams/minesweeper/' }, + { text: '2. Cheap Flights', link: '/exams/cheap-flights/' }, + { text: '3. Manhattan Distance', link: '/exams/manhattan-distance/' }, + { text: '4. N²-Knights', link: '/exams/n2-knights/' }, + { text: '5. Filetree', link: '/exams/filetree/' }, + { text: '6. Text Justification', link: '/exams/justify/' }, + { text: '7. Photographing Skyscrapers', link: '/exams/photo-skyscraper/' }, + { text: '8. Non-deterministic Finite Automata', link: '/exams/finite-automata/' }, + { text: '9. Least Common Anchestor', link: '/exams/least-common-ancestor/' }, + { text: '10. Building Trees', link: '/exams/building-trees/' }, + // { text: '11. Square Code', link: '/exams/filetree' }, + // { text: '12. Rock, Paper, Scissors', link: '/exams/filetree' }, + // { text: '13. Sierpinski Carpet', link: '/exams/filetree' }, + // { text: '14. Spiral Matrix', link: '/exams/filetree' }, + // { text: '15. Unit Propagation', link: '/exams/filetree' }, + // { text: '16. Balanced Binary Tree', link: '/exams/filetree' }, + // { text: '17. Minimum Spanning Tree', link: '/exams/filetree' }, + // { text: '18. Pretty Printing Binary Numbers', link: '/exams/filetree' }, + // { text: '19. Fermat Primality Test', link: '/exams/filetree' }, + // { text: '20. Convex Hull', link: '/exams/filetree' }, ] }, diff --git a/README.md b/README.md index 1dbfc9e..394a33f 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ To read the lecture notes head to the [course homepage](https://aicenter.github. You need `npm` to build the page. Once you have that it should be enough to: ```bash +npm install npm run docs:dev ``` diff --git a/exams/building-trees/index.md b/exams/building-trees/index.md new file mode 100644 index 0000000..e5a9a7d --- /dev/null +++ b/exams/building-trees/index.md @@ -0,0 +1,253 @@ +--- +outline: deep +title: "Exam Task: Building Trees" +subtitle: "From: Exam 2 - 2023" +--- + +# Building Trees + + +In this task, you will build a tree from an intial tree and a sequence of edges. Your task is to +iterate through the edge sequence from left to right and expand successively the initial tree. Each +edge is a pair $(s,t)$. To expand the tree by the edge $(s,t)$, you must traverse through the tree +and locate the node $s$. Next, you add $t$ among its children. If $s$ does not occur in the tree, +the edge is ignored. + +For example, suppose that the initial tree is just a single node (a leaf) $1$ and the edge sequence +equals $(1,2),(1,3),(5,7),(2,4),(4,5),(3,6)$. By expanding the initial tree by the edges, we obtain +the following sequence of trees: + + + +Note that the third edge $(5,7)$ was ignored because there is no node $5$ in the currently +constructed tree. So the currently constructed tree remains unchanged. + +## Racket + +In \textbf{Racket}, implement a function `(build-tree init edges)` that takes an initial +tree `init` and a list of edges `edges`, and returns the tree created by expanding +the initial tree by the edges. + +To represent trees in Racket, use the following structures: +```scheme +(struct node (val kids) #:transparent) +(struct leaf (val) #:transparent) +``` +Thus the leaves (nodes without children) are represented as, for instance, `(leaf 6)`. +The nodes with children are represented as, for instance, `(node 1 (list (leaf 2) (leaf 3)))`. + +To implement the function `build-tree`, implement first a function `(add-edge edge tree)` +expanding a given tree `tree` by a single edge `edge`. For example, +```scheme +> (add-edge '(2 4) (node 1 (list (leaf 2) (leaf 3)))) +(node 1 (list (node 2 (list (leaf 4))) (leaf 3))) +``` + +When you add a new leaf to a list of children, prepend it at the front. For example, +```scheme +> (add-edge '(1 3) (node 1 (list (leaf 2)))) +(node 1 (list (leaf 3) (leaf 2))) +``` + +To make the output of the function `build-tree` unique, sort the children of every node +in the resulting tree based on their values. You may assume, that the node values are numbers. +For example, +```scheme +(node 1 (list (node 2 (list (leaf 4))) (leaf 3))) ; correct +(node 1 (list (leaf 3) (node 2 (list (leaf 4))))) ; not correct +``` + +Your file should be called `task3.rkt` and should export the `add-edge` and +`build-tree` functions and the structures `node` and `leaf`. +```scheme +#lang racket + +(provide add-edge + build-tree + (struct-out node) + (struct-out leaf)) + +(struct node (val kids) #:transparent) +(struct leaf (val) #:transparent) + +(define (add-edge edge tree) + ; Implement me! + ) + +(define (build-tree init edges) + ; Implement me! + ) +``` + +### Example + +```scheme +> (build-tree (leaf 1) '((1 2) (1 3) (5 7) (2 4) (4 5) (3 6))) +(node 1 (list (node 2 (list (node 4 (list (leaf 5))))) + (node 3 (list (leaf 6))))) +``` + +### Hints + +To sort the children, use the function `(sort lst less-than?)` sorting a list `lst` +comparing its elements by a function `less-than?`. For example, +```scheme +> (sort '((1 3) (2 2) (3 1)) (lambda (p q) (< (cadr p) (cadr q)))) +'((3 1) (2 2) (1 3)) +``` + +::: details Solution +```scheme +#lang racket + +(provide add-edge build-tree) + +(struct node (val kids) #:transparent) +(struct leaf (val) #:transparent) + +(define (value t) + (match t + [(leaf x) x] + [(node x kids) x])) + +(define (sortnodes ns) + (sort ns (lambda (p q) (< (value p) (value q))))) + + +(define (add-edge edge tree) + (define s (car edge)) + (define t (cadr edge)) + (match tree + [(leaf x) + (if (= x s) + (node x (list (leaf t))) + (leaf x))] + [(node x kids) + (if (= x s) + (node x (sortnodes (cons (leaf t) kids))) + (node x (map (curry add-edge edge) kids)))] + )) + + +(define (build-tree init edges) (foldl add-edge init edges)) + +; (define (build-tree init edges)) +; (add-edge '(2 4) (node 1 (list (le)))) +(add-edge '(2 4) (leaf 2)) +(add-edge '(2 4) (node 1 (list (leaf 2) (leaf 3)))) + + +(build-tree (leaf 1) '((1 2) (1 3) (2 4) (4 5) (3 6))) +(node 1 (list (node 2 (list (node 4 (list (leaf 5))))) (node 3 (list (leaf 6))))) +``` +::: + +## Haskell + +In Haskell, implement a function +`buildTree :: Ord a => Tree a -> [Edge a] -> Tree a` that takes an initial +tree and a list of edges, and returns the tree created by expanding +the initial tree by the edges. + +To represent trees and edges, use the following data types: +```haskell +data Tree a = Leaf { val :: a } + | Node { val :: a, + kids :: [Tree a] } deriving (Eq,Show) + +type Edge a = (a,a) +``` +Thus the leaves (nodes without children) are represented as, for instance, `Leaf {val = 6}`. +The nodes with children are represented as, for instance, +```haskell +Node {val = 1, kids = [Leaf {val = 2,Leaf {val = 3}]} +``` + +To implement the function `buildTree`, implement first a function +```haskell +addEdge :: Eq a => Tree a -> Edge a -> Tree a +``` +expanding a given tree by a single edge. For example, +```haskell +> addEdge (Node {val = 1, kids = [Leaf {val = 2}, Leaf {val = 3}]}) (2,4) +Node {val = 1, kids = [Node {val = 2, kids = [Leaf {val = 4}]}, + Leaf {val = 3}]} +``` + +When you add a new leaf to a list of children, prepend it at the front. For example, +```haskell +> addEdge (Node {val = 1, kids = [Leaf {val = 2}]}) (1,3) +Node {val = 1, kids = [Leaf {val = 3}, Leaf {val = 2}]} +``` + +To make the output of the function `buildTree` unique, sort the children of every node +in the resulting tree based on their values. You may assume, that the node values belongs to +the typeclass `Ord`. For example, + +```haskell + Node {val = 1, kids = [Node {val = 2, kids = [Leaf {val = 4}]}, + Leaf {val = 3}]} -- correct + Node {val = 1, kids = [Leaf {val = 3}, + Node {val = 2, kids = [Leaf {val = 4}]}]} -- not correct +``` + +Your file should be called `Task4.hs` and should export the `buildTree`, +`addEdge` functions and the type `Tree`. + +```haskell +module Task4 (addEdge, buildTree, Tree(..)) where +import Data.List + +data Tree a = Leaf { val :: a } + | Node { val :: a, + kids :: [Tree a] } deriving (Eq,Show) + +type Edge a = (a,a) + +addEdge :: Eq a => Tree a -> Edge a -> Tree a +-- implement me! + +buildTree :: Ord a => Tree a -> [Edge a] -> Tree a +-- implement me! +``` + +### Example + +```haskell +> buildTree (Leaf {val=1}) [(1,2),(1,3),(5,7),(2,4),(4,5),(3,6)] +Node {val = 1, kids = [Node {val = 2, kids = [Node {val = 4, + kids = [Leaf {val = 5}]}]}, + Node {val = 3, kids = [Leaf {val = 6}]}]} +``` + +### Hints + +To sort the children, use the function `sortOn :: Ord b => (a -> b) -> [a] -> [a]` +from the library `Data.List` sorting a list by converting them into a values of +a type inside `Ord`. For example, +```haskell +> sortOn snd [(1,3),(2,2),(3,1)] +[(3,1),(2,2),(1,3)] +``` + +::: details Solution +```haskell +import Data.List + +data Tree a = Leaf { val :: a } + | Node { val :: a, + kids :: [Tree a] } deriving Show +type Edge a = (a,a) + +tr = Node {val = 1, kids = [Leaf {val = 2},Leaf {val = 3}]} + +addEdge (Leaf x) (s,t) | x == s = Node x [Leaf t] + | otherwise = Leaf x +addEdge (Node x kids) (s,t) + | x == s = Node x (sortOn val ((Leaf t):kids)) + | otherwise = Node x [addEdge n (s,t) | n <- kids] + + +buildTree tree edges = foldl addEdge tree edges +``` +::: diff --git a/exams/building-trees/task.hs b/exams/building-trees/task.hs new file mode 100644 index 0000000..9435ef5 --- /dev/null +++ b/exams/building-trees/task.hs @@ -0,0 +1,17 @@ +import Data.List + +data Tree a = Leaf { val :: a } + | Node { val :: a, + kids :: [Tree a] } deriving Show +type Edge a = (a,a) + +tr = Node {val = 1, kids = [Leaf {val = 2},Leaf {val = 3}]} + +addEdge (Leaf x) (s,t) | x == s = Node x [Leaf t] + | otherwise = Leaf x +addEdge (Node x kids) (s,t) + | x == s = Node x (sortOn val ((Leaf t):kids)) + | otherwise = Node x [addEdge n (s,t) | n <- kids] + + +buildTree tree edges = foldl addEdge tree edges diff --git a/exams/building-trees/task.rkt b/exams/building-trees/task.rkt new file mode 100644 index 0000000..21dc9f1 --- /dev/null +++ b/exams/building-trees/task.rkt @@ -0,0 +1,41 @@ +#lang racket + +(provide add-edge build-tree) + +(struct node (val kids) #:transparent) +(struct leaf (val) #:transparent) + +(define (value t) + (match t + [(leaf x) x] + [(node x kids) x])) + +(define (sortnodes ns) + (sort ns (lambda (p q) (< (value p) (value q))))) + + +(define (add-edge edge tree) + (define s (car edge)) + (define t (cadr edge)) + (match tree + [(leaf x) + (if (= x s) + (node x (list (leaf t))) + (leaf x))] + [(node x kids) + (if (= x s) + (node x (sortnodes (cons (leaf t) kids))) + (node x (map (curry add-edge edge) kids)))] + )) + + +(define (build-tree init edges) (foldl add-edge init edges)) + +; (define (build-tree init edges)) +; (add-edge '(2 4) (node 1 (list (le)))) +(add-edge '(2 4) (leaf 2)) +(add-edge '(2 4) (node 1 (list (leaf 2) (leaf 3)))) + + +(build-tree (leaf 1) '((1 2) (1 3) (2 4) (4 5) (3 6))) +(node 1 (list (node 2 (list (node 4 (list (leaf 5))))) (node 3 (list (leaf 6))))) diff --git a/exams/building-trees/trees.tex b/exams/building-trees/trees.tex new file mode 100644 index 0000000..0d1060a --- /dev/null +++ b/exams/building-trees/trees.tex @@ -0,0 +1,47 @@ +\documentclass[border=0pt]{standalone} +\usepackage{graphicx} +\usepackage{fancyvrb} +\usepackage{xcolor} +\usepackage{bm} +\usepackage{pgf} +\usepackage{tikz} +\usetikzlibrary{arrows,automata,positioning} + +\definecolor{myGray}{rgb}{0.85,0.85,0.85} + +\begin{document} + +\begin{tikzpicture} + \node (1) {$1$}; + + \node[right=of 1] (12) {$1$} + child {node {$2$}}; + + \node[right=1.5cm of 12] (123) {$1$} + child {node {$2$}} + child {node {$3$}}; + + \node[right=2cm of 123] (123') {$1$} + child {node {$2$}} + child {node {$3$}}; + + \node[right=2cm of 123'] (1234) {$1$} + child {node {$2$} + child {node {$4$}}} + child {node {$3$}}; + + \node[right=2cm of 1234] (12345) {$1$} + child {node {$2$} + child {node {$4$} + child {node {$5$}}}} + child {node {$3$}}; + + \node[right=2cm of 12345] {$1$} + child {node {$2$} + child {node {$4$} + child {node {$5$}}}} + child {node {$3$} + child {node {$6$}}}; + +\end{tikzpicture} +\end{document} diff --git a/exams/cheap-flights/cheap-flights.pdf b/exams/cheap-flights/cheap-flights.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac524d05c8c6073af9dc7ebeba32605a27885c85 GIT binary patch literal 39230 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%0DhA}I7%bNB8?7zXYM(LE?2(M1j(&4B5;K1J4V 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,shorten >=1pt,auto,node distance=2.8cm,semithick] + \tikzstyle{state}=[circle,fill=myGray,draw=none] + + \node[state] (1) {\texttt{1}}; + \node[state] (2) [below right of=1] {\texttt{2}}; + \node[state] (3) [below left of=1] {\texttt{3}}; + \node[state] (4) [below of=3] {\texttt{4}}; + \node[state] (5) [below of=2] {\texttt{5}}; + \node[state] (6) [right of=2] {\texttt{6}}; + + \path (1) edge node {0.5} (2); + \path (2) edge node {1} (5); + \path (5) edge node {1} (4); + \path (3) edge node {4} (4); + \path (1) edge node {1} (3); + \path (2) edge node {2} (3); +\end{tikzpicture} + +\end{document} diff --git a/exams/cheap-flights/index.md b/exams/cheap-flights/index.md new file mode 100644 index 0000000..f33bb5f --- /dev/null +++ b/exams/cheap-flights/index.md @@ -0,0 +1,322 @@ +--- +outline: deep +title: "Exam Task: Cheap Flights" +subtitle: "From: Exam 1 - 2021" +--- + +# Cheap Flights + + +In this task your goal is to find the cheapest flights from one airport to another. You are given an +undirected graph that is represented by a list of nodes (airports) and a list of edges (connections +from airport to airport). Each edge contains the two nodes that it connects as well as the cost of +traveling along the edge. + +Below you can see an exemplary graph with 5 nodes. The cost to travel along an edge is written next to the +corresponding edge. + + + + +## Racket + +In Racket, the exmeplary graph is represented as shown in the code snippet below. + +```scheme +; list of nodes +(define ns '(1 2 3 4 5 6)) ; listofnodes +; list of edges where each edge contains (start end cost) +(define es '((1 2 0.5) (1 3 1.0) (2 3 2.0) (2 5 1.0) (3 4 4.0) (4 5 1.0))) +; the graph; a list of nodes and edges +(define gr (list ns es)) + +; some convenience functions +(define (nodes gr) (car gr)) +(define (edges gr) (cadr gr)) +(define (cost edge) (caddr edge)) +``` + +A `Path` represents your travel plan. For example, there are three paths from node `2` to node `3`: +```scheme +(2,3) ; path #1 cost: 2 +(2,1,3) ; path #2 cost: 1.5 +(2,5,4,3) ; path #3 cost: 6 +``` + +Write a function `(cheapflight a b gr)` which takes a starting node `a`, a destination node `b`, a +graph `gr`, and returns a list containing the cheapest path from start to destination, as well as the +total cost. If there is no path from `a` to `b` return `#f` + +Your solution must be in a file called `task2.rkt` and has to `provide` the `cheapflight` function. +Your file should therefore start like this: +```scheme +#lang racket + +(provide cheap-flight) + +; ... your code goes here ... +``` + +### Example + +```scheme +; with the graph defined above: +> (cheap-flight 2 3 gr) +'((2 1 3) 1.5) + +> (cheap-flight 2 6 gr) +#f +``` + +### Hints + +In order to find the cheapest path you can take inspiration from the Scheme lectures. We used a +queue of partial solutions and extended the shortest path until we found a solution. Here you are +not looking for the shortest but the cheapest path. To achieve this you can sort the queue of +partial solutions to extend the cheapest path. + +In Scheme you can `sort` a list with the help of a predicate function taking two arguments. In case +of a list of lists (containing cost and path) you could do the following: +```scheme +> (define (cheaper? x y) (< (car x) (car y))) +> (sort '(((2 3) 2.0) ((2 1 3) 1.5)) cheaper?) +'(((2 1 3) 1.5) ((2 3) 2.0)) +``` + +::: details Solution +```scheme +#lang racket + +(provide cheap-flight) + +(define (nodes gr) (car gr)) +(define (edges gr) (cadr gr)) +(define (cost edge) (caddr edge)) + +; (display gr) + +(define (neighbors n gr) + (define (iter n es ns) + (if (empty? es) ns + (let* ([e (car es)] + [a (car e)] + [b (cadr e)] + [rest-es (cdr es)]) + (cond + ((= n a) (iter n rest-es (cons b ns))) + ((= n b) (iter n rest-es (cons a ns))) + (else (iter n rest-es ns)) + ))) + ) + (iter n (edges gr) '()) + ) + +; (display (neighbors 2 gr)) + +(define (extend path gr) + (if (empty? path) '() + (map (lambda (n) (cons n path)) (neighbors (car path) gr)) + ) + ) + +(define (unvisited path gr) + (define (f ns) (not (member (car ns) (cdr ns)))) + (filter f (extend path gr)) + ) + +; (display (unvisited '(2 5) gr)) + +(define (split f lst) + (define (iter f lst r1 r2) + (if (empty? lst) (list r1 r2) + (if (f (car lst)) + (iter f (cdr lst) (cons (car lst) r1) r2) + (iter f (cdr lst) r1 (cons (car lst) r2)) + ) + )) + (iter f lst '() '()) + ) + +; (display (split (lambda (x) (< x 3)) '(1 2 3 4 1 1 5 3 6))) + +(define (search paths goal gr res) + (if (empty? paths) res + (let* ([p (car paths)] + [ps (cdr paths)] + [rps-eps (split (lambda (x) (= goal (car x))) (unvisited p gr))] + [rps (car rps-eps)] + [eps (cadr rps-eps)]) + (search (append ps eps) goal gr (append res (map reverse rps))) + ) + ) + ) + +; (display (search '((2)) 3 gr '())) + +(define (find-edge xy gr) + (define (f edge) + (let ([a (car edge)] + [b (cadr edge)] + [c (cost edge)] + [x (car xy)] + [y (cadr xy)]) + (or (and (= x a) (= y b)) + (and (= x b) (= y a))) + ) + ) + (filter f (edges gr)) + ) + +; (display (find-edge '(1 2) gr)) + +(define (zip l1 l2) (map list l1 l2)) +(define (sum xs) (foldl + 0 xs)) +(define (init-list lst) (reverse (cdr (reverse lst)))) + +(define (total-cost path gr) + (define es (zip (init-list path) (cdr path))) + (define cs (map (lambda (e) (cost (car (find-edge e gr)))) es)) + (sum cs)) + +; (display (total-cost '(2 1 3) gr)) + +(define (connections a b gr) + (define ps (search (list (list a)) b gr '())) + (define cs (map (lambda (p) (total-cost p gr)) ps)) + (zip ps cs) + ) + +; (connections 2 3 gr) + +(define (cheap-flight a b gr) + (define (cheaper? x y) (< (cadr x) (cadr y))) + (define fs (sort (connections a b gr) cheaper?)) + (if (> (length fs) 0) (car fs) #f) + ) +``` +::: + +## Haskell + +In Haskell, the exmeplary graph is represented as shown in the code snippet below. + +```haskell +type Node = Int +type Cost = Float +type Edge = (Node,Node,Cost) type Graph = ([Node],[Edge]) type Path = [Node] + +nodes :: [Node] +nodes = [1..6] + +edges :: [Edge] +edges = [(1,2,0.5), (1,3,1.0), (2,3,2.0), (2,5,1.0), (3,4,4.0), (4,5,1.0)] + +graph :: Graph +graph = (nodes,edges) +``` + +A `Path` represents your travel plan. For example, there are three paths from node `2` to node `3`: + +```haskell +p1 = [2,3] -- cost: 2 +p2 = [2,1,3] -- cost: 1.5 +p3 = [2,5,4,3] -- cost: 6 +``` + +Write a function `cheapflight :: Node -> Node -> Graph -> Maybe (Path,Cost)` which takes a starting +`Node`, a destination `Node`, a `Graph`, and returns the cheapest path from start to destination, as +well as the total cost. +Your solution must be in a module called `Task3.hs` and export the defined +types as well was the `cheapflight` function. Your file should therefore start like this: + +```haskell +module Task3 (cheapflight,Node,Cost,Edge,Graph,Path) where +import Data.List -- needed for sorting (see hints) + +-- ... your code goes here ... +``` + + +### Example + +```haskell + -- with the graph defined above: +> cheapflight 2 3 gr +Just ([2,1,3],1.5) + +> cheapflight 2 6 gr +Nothing +``` + + +### Hints + +In order to find the cheapest path you can modify the breadth-first-search (BFS) algorithm that was +discussed in the labs. In the lab we used a queue of partial solutions and extended the shortest +path until we found a solution. Here you are not looking for the shortest but the cheapest path. To +achieve this you can sort the queue of partial solutions to extend the cheapest path. + +For sorting your paths according to the cost you can use the function `sortBy` which is provided by +the package `Data.List`: + +```haskell +import Data.List + +lowcost (_,x) (_,y) | x < y = LT + | otherwise = GT + +sortBy lowcost [([1,3],2.0) ([1,2,3],0.3)] +-- [([1,2,3],0.3) ([1,3],2.0)] +``` + +::: details Solution +```haskell +module Task3 (cheapflight,Node,Cost,Edge,Graph,Path) where +import Data.List + +type Node = Int +type Cost = Float +type Edge = (Node,Node,Cost) +type Graph = ([Node],[Edge]) +type Path = [Node] + +nextPos :: Node -> Graph -> [(Node,Cost)] +nextPos n g = [(y,z) | (x,y,z) <- snd g, x == n] ++ [(x,z) | (x,y,z) <- snd g, y == n] + +extend :: (Path,Cost) -> Graph -> [(Path,Cost)] +extend ([],_) _ = [] +extend (path@(p:_),c) m = map (\(n,c') -> (n:path,c+c')) $ nextPos p m + +lowcost :: Ord b => (a,b) -> (a,b) -> Ordering +lowcost (_,x) (_,y) | x < y = LT + | otherwise = GT + +bfs :: [Node] -> [(Path,Cost)] -> Node -> Graph -> Maybe (Path, Cost) +bfs _ [] _ _ = Nothing +bfs visited upaths q m + -- is path a solution? If yes, return the reversed solution + | p == q = Just (reverse path, c) + -- does path end in an already visited position? If yes, disregard it + | p `elem` visited = bfs visited paths q m + | otherwise = bfs (p:visited) (paths ++ extend (path,c) m) q m + -- consider the first path in the queue and its head p + where ((path@(p:_),c):paths) = sortBy lowcost upaths + +cheapflight :: Node -> Node -> Graph -> Maybe (Path,Cost) +cheapflight s t g = bfs [] [([s],0)] t g + + +nodes :: [Node] +nodes = [1..6] + +edges :: [Edge] +edges = [(1,2,0.5), (1,3,1.0), (2,3,2.0), (2,5,1.0), (3,4,4.0), (4,5,1.0)] + +graph :: Graph +graph = (nodes,edges) + +-- cheapflight 2 5 graph +-- > Just ([2,1,3], 1.5) +``` +::: + diff --git a/exams/cheap-flights/task.hs b/exams/cheap-flights/task.hs new file mode 100644 index 0000000..15d7eff --- /dev/null +++ b/exams/cheap-flights/task.hs @@ -0,0 +1,47 @@ +import Data.List + +import Data.List + +type Node = Int +type Cost = Float +type Edge = (Node,Node,Cost) +type Graph = ([Node],[Edge]) +type Path = [Node] + +nextPos :: Node -> Graph -> [(Node,Cost)] +nextPos n g = [(y,z) | (x,y,z) <- snd g, x == n] ++ [(x,z) | (x,y,z) <- snd g, y == n] + +extend :: (Path,Cost) -> Graph -> [(Path,Cost)] +extend ([],_) _ = [] +extend (path@(p:_),c) m = map (\(n,c') -> (n:path,c+c')) $ nextPos p m + +lowcost :: Ord b => (a,b) -> (a,b) -> Ordering +lowcost (_,x) (_,y) | x < y = LT + | otherwise = GT + +bfs :: [Node] -> [(Path,Cost)] -> Node -> Graph -> Maybe (Path, Cost) +bfs _ [] _ _ = Nothing +bfs visited upaths q m + -- is path a solution? If yes, return the reversed solution + | p == q = Just (reverse path, c) + -- does path end in an already visited position? If yes, disregard it + | p `elem` visited = bfs visited paths q m + | otherwise = bfs (p:visited) (paths ++ extend (path,c) m) q m + -- consider the first path in the queue and its head p + where ((path@(p:_),c):paths) = sortBy lowcost upaths + +cheapflight :: Node -> Node -> Graph -> Maybe (Path,Cost) +cheapflight s t g = bfs [] [([s],0)] t g + + +nodes :: [Node] +nodes = [1..6] + +edges :: [Edge] +edges = [(1,2,0.5), (1,3,1.0), (2,3,2.0), (2,5,1.0), (3,4,4.0), (4,5,1.0)] + +graph :: Graph +graph = (nodes,edges) + +-- cheapflight 2 5 graph +-- > Just ([2,1,3], 1.5) diff --git a/exams/cheap-flights/task.rkt b/exams/cheap-flights/task.rkt new file mode 100644 index 0000000..56495a6 --- /dev/null +++ b/exams/cheap-flights/task.rkt @@ -0,0 +1,58 @@ +#lang racket + +; (provide cheap-flight) + +(define (nodes gr) (car gr)) +(define (edges gr) (cadr gr)) +(define (cost edge) (caddr edge)) + +; list of nodes +(define ns '(1 2 3 4 5 6)) ; listofnodes +; list of edges where each edge contains (start end cost) +(define es '((1 2 0.5) (1 3 1.0) (2 3 2.0) (2 5 1.0) (3 4 4.0) (4 5 1.0))) +; the graph; a list of nodes and edges +(define gr (list ns es)) + + +(define (next-pos node graph) + (define es (edges graph)) + (append + (map (lambda (e) (list (car e) (cost e))) + (filter (lambda (e) (= (cadr e) node)) es)) + (map (lambda (e) (list (cadr e) (cost e))) + (filter (lambda (e) (= (car e) node)) es)))) + +; (define (extend path cost graph) +; (if (empty? path) '() +; (let* ([node (car path)] +; [nps (next-pos node graph)]) +; (map (lambda (n c) (cons n path, cost+c)) +; (next-pos (car path) graph))))) + + +(define (extend path cost graph) + (if (empty? path) '() + (map (lambda (node-cost) + (let* ([node (car node-cost)] + [c (cadr node-cost)]) + (list (cons node path) (+ cost c)))) + (next-pos (car path) graph)))) + +(define (bfs visited upaths q graph) + (if (empty? upaths) '() + (let* ([paths (sort upaths cheaper?)] + [path-cost (car paths)] + [path (car path-cost)] + [node (car path)] + [c (cadr path-cost)]) + (cond [(equal? node q) (cons (reverse path) c)] + [(member node visited) (bfs visited paths q graph)] + [else (bfs + (cons node visited) + (append paths (extend path c graph)) + q graph)] + ;(list paths path p c) + )) + )) + +(define (cheaper? x y) (< (cadr x) (cadr y))) diff --git a/exams/filetree/FTree.hs b/exams/filetree/FTree.hs new file mode 100644 index 0000000..0e5f15d --- /dev/null +++ b/exams/filetree/FTree.hs @@ -0,0 +1,28 @@ +module FTree ( + FTree(FNil,FNode), + showTree, + printTree, + depth, + leaves +) where + +import Data.Map (Map) +import qualified Data.Map as Map + +data FTree a = FNil + | FNode {leaves :: Map a (FTree a)} deriving (Eq,Show) + +showTree FNil = "" +showTree (FNode m) = disp 3 (Map.toList m) where + indent n s = take (n-3) [' ', ' '..] ++ "*" ++ take 3 ['-', '-'..] ++ s ++ "\n" + disp n [] = "" + disp n ((k,FNode vs):rls) = indent n k + ++ disp (n+4) (Map.toList vs) + ++ disp n rls + disp n ((k,FNil):rls) = indent n k ++ disp n rls + +printTree = putStrLn . showTree + +depth tree = _depth 0 tree where + _depth d FNil = d + _depth d (FNode m) = maximum (map (\t -> _depth (d+1) t) (Map.elems m)) diff --git a/exams/filetree/index.md b/exams/filetree/index.md new file mode 100644 index 0000000..4b46b18 --- /dev/null +++ b/exams/filetree/index.md @@ -0,0 +1,276 @@ +--- +outline: deep +title: "Exam Task: Filetree" +subtitle: "In Racket and Haskell" +--- + +# Filetree + +A filetree can be used to efficiently search/replace in large filesystems. +You can think of it as a tree with a variable size of nodes + +``` +. +├── scripts +│   ├── emptydir +│   ├── ex1 +│   │   ├── eval.ss +│   │   └── test.ss +│   └── ex2 +│   └── test.ss +├── src +│   ├── complex.hs +│   └── tree.hs +└── tests + └── test_tree.hs +``` + + +## Racket + + +In Racket, we define a filetree as nested dictionaries, +where each directory is a key for a filetree. +An empty filetree is just `#hash()` the filetree above would look like +```scheme +'#hash( + ("scripts" . #hash( + ("emptydir" . #hash()) + ("ex1" . #hash( + ("eval.ss" . #hash()) + ("test.ss" . #hash()))) + ("ex2" . #hash( + ("test.ss" . #hash()))))) + ("src" . #hash( + ("complex.hs" . #hash()) + ("tree.hs" . #hash()))) + ("tests" . #hash( + ("test_tree.hs" . #hash())))) +``` +In this formulation a leaf is represented by a pair of a string and am empty dictionary. We can +then use filetrees to model a filesystem. The exercise consists in parsing a list of file paths +(directories separated by `/`), input as strings, into a filetree through a function `(parse +paths)`. + + +### Implementation + +You are given a list of files (directories separated by `/`) like this: +```scheme +(list "src/tree.hs" + "src/complex.hs" + "scripts/ex1/test.ss" + "scripts/ex1/eval.ss" + "scripts/emptydir" + "scripts/ex2/test.ss" + "tests/test_tree.hs")) +``` +Parse the list of files into a tree and check if a new file or directory is +already in the tree with the function +```scheme +(exists file tree) +``` + + +### Hints + +For splitting a string into a list of strings you can make use of the function `string-split`. + + +### Example + +```scheme +(exists "src/tree.hs" (parse files)) +> #t + +(exists "src/test.hs" (parse files)) +> #f +``` + +::: details Solution +```scheme +#lang racket + +(define (insert xs tree) + (if (empty? xs) + tree + (let* ((k (car xs)) + (v (if (dict-has-key? tree k) (dict-ref tree k) #hash())) + (newv (insert (cdr xs) v))) + (dict-set tree k newv)))) + +(define (split file) (string-split file "/")) + +(define (parse files) + (foldl (lambda (file tree) (insert (split file) tree)) + #hash() + files)) + +(define (exists file tree) + (define (helper names tree) + (cond [(empty? names) #t] + [(empty? tree) #f] + [(dict-has-key? tree (car names)) + (helper (cdr names) (dict-ref tree (car names)))] + [else #f])) + (helper (split file) tree)) + + +;;;;;;;;;;;;;;;;;;;;;; + +(define files + (list "src/tree.hs" + "src/complex.hs" + "scripts/ex1/test.ss" + "scripts/ex1/eval.ss" + "scripts/emptydir" + "scripts/ex2/test.ss" + "tests/test_tree.hs")) + +; (define a (insert '("asdf" "asdf") #hash())) +; (insert '("asdf" "sss") a) + +(define tree (parse files)) +(exists "src" tree) +(exists "src/complex.hs" tree) +``` +::: + +## Haskell + +For the Haskell implementation you are provided with a module +[`FTree.hs`](https://github.com/aicenter/FUP/blob/main/code/FTree.hs) which contains a `FTree` type +including a `Data.Map` from keys to values. We quote the definition here: +```haskell +import Data.Map (Map) +import qualified Data.Map as Map + +data FTree a = FNil | FNode (Map a (FTree a)) deriving (Eq) +``` +The type `Map k v` is a predefined type which represents a simple associative map. +You can use all functions that are defined on the `Map`. The `FTree` has a +constructor `FNode m` that takes a mapping `m` between strings and filetrees, and a +constructor `FNil`. The mapping `m` contains entries that associate directories and +their subtrees. + +### Implementation + +In Haskell, you are given a list of files (directories separated by `/`) like +this: + +```haskell +files = ["src/tree.hs" + ,"src/complex.hs" + ,"scripts/ex1/test.ss" + ,"scripts/ex1/eval.ss" + ,"scripts/emptydir" + ,"scripts/ex2/test.ss" + ,"tests/test_tree.hs"] +``` + +Parse the list of files into an `FTree` and check if a new file or directory is +already in the tree with the function +``` +exists :: String -> FTree String -> Bool +``` + +Your filename has to end in `.hs`. + +### Example + +```haskell +Prelude> exists "src/tree.hs" (parse files) +True + +Prelude> exists "src/test.hs" (parse files) +False +``` + +### Hints + +You can use all functions that are available for `Map` (e.g. `empty`, `insert`, +`member`, `lookup`, `findWith`, `findWidthDefault`, ...), you just need to +import it. + +For splitting a string into a list of strings you can make use of the functions +```haskell +break :: (a -> Bool) -> [a] -> ([a], [a]) +takeWhile :: (a -> Bool) -> [a] -> [a] +dropWhile :: (a -> Bool) -> [a] -> [a] +``` + +::: details Solution +**Explaination of the solution below** +```haskell +insert :: [String] -> FTree String -> FTree String +insert (d:r) (FNode ls) = FNode (Map.alter (Just . insert r . fromMaybe FNil) d ls) +``` +There are two cases to consider here: + +- If the key `d` does not exist we want to add `(d, FNil)` to the map. +- If `d` does exist we still might have to update the rest of the file tree, so we want to + recursively add `(d, insert r (subtree at d))` + +Updating a `Maybe` existing value based on a function can be done with `Map.alter`. +Map.alter wants an update function (`Maybe FTree String -> Maybe FTree String`) +This we can achieve via `(fromMaybe FNil)` which constructs a function that returns +`FNil` if it receives a `Nothing` and otherwise the `Just` value it receives +(i.e. the subtree at d). + +In the `_exists` function if we find `x` in the current tree level, we want to recurse. +`Map.lookup` returns a `Maybe`, so we can lift `_exists xs` to work on a `Maybe FTree` +```haskell + _exists (x:xs) (FNode ls) = fromMaybe False (_exists xs <$> (Map.lookup x ls)) +``` + +**Full solution** + +```haskell +import Data.Maybe +import Data.Map (Map) +import qualified Data.Map as Map +import FTree + + +splitOn :: Char -> String -> [String] +splitOn c s = case (break (== c) s) of + (d, "") -> [d] + (d, r) -> [d] ++ splitOn c (drop 1 r) where + +split :: String -> [String] +split = splitOn '/' + +insert :: [String] -> FTree String -> FTree String +insert [] tree = tree +insert (d:r) FNil = FNode (Map.insert d (insert r FNil) Map.empty) +insert (d:r) (FNode ls) = FNode (Map.alter (Just . insert r . fromMaybe FNil) d ls) + +parse :: [String] -> FTree String +parse files = foldl (\tree file -> (insert (splitOn '/' file) tree)) FNil files + +exists :: String -> FTree String -> Bool +exists file tree = _exists (split file) tree where + _exists [] tree = True + _exists _ FNil = False + _exists (x:xs) (FNode ls) = fromMaybe False (_exists xs <$> (Map.lookup x ls)) + + +files = ["dir1/tree.hs" + ,"dir1/complex.hs" + ,"dir2/ex1/test.ss" + ,"dir2/ex1/eval.ss" + ,"dir2/emptydir" + ,"dir3/ex2/test.ss" + ,"dir3/test_tree.hs"] + +main = do + let tree = parse files + putStrLn (showTree tree) + + print $ exists "dir1/tree.hs" tree + print $ exists "dir1/asdf.hs" tree + print $ exists "dir2/ex1" tree + print $ exists "dir2/ex1/eval.ss" tree + print $ exists "scripts/ex2/eval.ss" tree +``` +::: diff --git a/exams/filetree/simple.hs b/exams/filetree/simple.hs new file mode 100644 index 0000000..e865992 --- /dev/null +++ b/exams/filetree/simple.hs @@ -0,0 +1,57 @@ +import Data.Map (Map) +import qualified Data.Map as Map +import FTree + + +split :: String -> Char -> (String,String) +split s c = _split "" s c where + _split d [] c = (d,"") + _split d (x:xs) c | x==c = (d,xs) + | otherwise = _split (d++[x]) xs c + +find :: Ord k => k -> Map k (FTree a) -> FTree a +find d m = Map.findWithDefault FNil d m + +branch :: String -> FTree String +branch file = _branch file where + _branch "" = FNil + _branch file = FNode (Map.insert d (branch r) Map.empty) where + (d,r) = split file '/' + +insert :: FTree String -> String -> FTree String +insert FNil file = branch file +insert (FNode ls) file + | subtree == FNil = FNode (Map.insert d (branch r) ls) + | otherwise = FNode (Map.insert d (insert subtree r) ls) + where subtree = Map.findWithDefault FNil d ls + (d,r) = split file '/' + +parse :: [String] -> FTree String +parse files = _parse files FNil where + _parse [] t = t + _parse (f:fs) t = _parse fs (insert t f) + + +exists :: String -> FTree String -> Bool +exists file tree = _exists (split file '/') tree where + _exists (d,"") (FNode m) = Map.member d m + _exists (d,r) FNil = False + _exists (d,r) (FNode ls) = _exists (split r '/') (find d ls) + +-- main = do +-- let files = ["dir1/tree.hs" +-- ,"dir1/complex.hs" +-- ,"dir2/ex1/test.ss" +-- ,"dir2/ex1/eval.ss" +-- ,"dir2/emptydir" +-- ,"dir3/ex2/test.ss" +-- ,"dir3/test_tree.hs"] +-- let tree = parse files +-- putStrLn (showTree tree) +-- +-- print $ exists "dir1/tree.hs" tree +-- print $ exists "dir1/asdf.hs" tree +-- print $ exists "dir2/ex1" tree +-- print $ exists "dir2/ex1/eval.ss" tree +-- print $ exists "scripts/ex2/eval.ss" tree + diff --git a/exams/filetree/task.hs b/exams/filetree/task.hs new file mode 100644 index 0000000..5737a6b --- /dev/null +++ b/exams/filetree/task.hs @@ -0,0 +1,59 @@ +import Data.Maybe +import Data.Map (Map) +import qualified Data.Map as Map +import FTree + + +splitOn :: Char -> String -> [String] +splitOn c s = case (break (== c) s) of + (d, "") -> [d] + (d, r) -> [d] ++ splitOn c (drop 1 r) where + +split :: String -> [String] +split = splitOn '/' + +insert :: [String] -> FTree String -> FTree String +insert [] tree = tree +-- recursively insert into a new, empty Map +insert (d:r) FNil = FNode (Map.insert d (insert r FNil) Map.empty) +-- update existing tree. +-- we are not sure yet if `d` exists in the the tree +-- Two cases: +-- - d does not exist -> add (d, FNil) to tree +-- - d does exist -> add (d, insert r (subtree at d)) +-- Updating an existing value based on a function can be done with `Map.alter` +-- Map.alter wants an update function (Maybe FTree String -> Maybe FTree String) +-- This we can achieve via (fromMaybe FNil) which constructs a function that returns +-- FNil if it receives a Nothing and otherwise the Just value it receives (i.e. the subtree at d) +insert (d:r) (FNode ls) = FNode (Map.alter (Just . insert r . fromMaybe FNil) d ls) + +parse :: [String] -> FTree String +parse files = foldl (\tree file -> (insert (splitOn '/' file) tree)) FNil files + +exists :: String -> FTree String -> Bool +exists file tree = _exists (split file) tree where + _exists [] tree = True + _exists _ FNil = False + -- if we find x in the current tree level, we want to recurse + -- Map.lookup returns a Maybe, so we can lift `_exists xs` to work on a Maybe FTree + _exists (x:xs) (FNode ls) = fromMaybe False (_exists xs <$> (Map.lookup x ls)) + + +files = ["dir1/tree.hs" + ,"dir1/complex.hs" + ,"dir2/ex1/test.ss" + ,"dir2/ex1/eval.ss" + ,"dir2/emptydir" + ,"dir3/ex2/test.ss" + ,"dir3/test_tree.hs"] + +main = do + let tree = parse files + putStrLn (showTree tree) + + print $ exists "dir1/tree.hs" tree + print $ exists "dir1/asdf.hs" tree + print $ exists "dir2/ex1" tree + print $ exists "dir2/ex1/eval.ss" tree + print $ exists "scripts/ex2/eval.ss" tree + diff --git a/exams/filetree/task.rkt b/exams/filetree/task.rkt new file mode 100644 index 0000000..ccd4448 --- /dev/null +++ b/exams/filetree/task.rkt @@ -0,0 +1,44 @@ +#lang racket + +(define (insert xs tree) + (if (empty? xs) + tree + (let* ((k (car xs)) + (v (if (dict-has-key? tree k) (dict-ref tree k) #hash())) + (newv (insert (cdr xs) v))) + (dict-set tree k newv)))) + +(define (split file) (string-split file "/")) + +(define (parse files) + (foldl (lambda (file tree) (insert (split file) tree)) + #hash() + files)) + +(define (exists file tree) + (define (helper names tree) + (cond [(empty? names) #t] + [(empty? tree) #f] + [(dict-has-key? tree (car names)) + (helper (cdr names) (dict-ref tree (car names)))] + [else #f])) + (helper (split file) tree)) + + +;;;;;;;;;;;;;;;;;;;;;; + +(define files + (list "src/tree.hs" + "src/complex.hs" + "scripts/ex1/test.ss" + "scripts/ex1/eval.ss" + "scripts/emptydir" + "scripts/ex2/test.ss" + "tests/test_tree.hs")) + +; (define a (insert '("asdf" "asdf") #hash())) +; (insert '("asdf" "sss") a) + +(define tree (parse files)) +(exists "src" tree) +(exists "src/complex.hs" tree) \ No newline at end of file diff --git a/exams/finite-automata/dfa.tex b/exams/finite-automata/dfa.tex new file mode 100644 index 0000000..e7031c8 --- /dev/null +++ b/exams/finite-automata/dfa.tex @@ -0,0 +1,27 @@ +\documentclass[border=0pt]{standalone} +\usepackage{graphicx} +\usepackage{fancyvrb} +\usepackage{xcolor} +\usepackage{bm} +\usepackage{pgf} +\usepackage{tikz} +\usetikzlibrary{automata, positioning, arrows} + + +\begin{document} + +\begin{tikzpicture}[>=stealth,auto,node distance=20mm,state/.append style={fill=black!10}] + \node[state, initial] (1) {$1$}; + \node[state, accepting, above right of=1] (2) {$2$}; + % \node[state, accepting, right of=2] (3) {$3$}; + \node[state, accepting, below right of=1] (3) {$3$}; + \node[state, above right of=3] (4) {$4$}; + + \draw (1) edge[->,above] node {$a$} (2) + (2) edge[loop above] node {$b$} (2) + (1) edge[->,above] node {$a$} (3) + (3) edge[->, below, bend right] node {$b$} (4) + (4) edge[->, above, bend right] node {$a$} (3) + (2) edge[->, above] node {$a$} (4); +\end{tikzpicture} +\end{document} diff --git a/exams/finite-automata/index.md b/exams/finite-automata/index.md new file mode 100644 index 0000000..3c1dad7 --- /dev/null +++ b/exams/finite-automata/index.md @@ -0,0 +1,303 @@ +--- +outline: deep +title: "Exam Task: Non-deterministic Finite Automata" +subtitle: "From: Exam 2 - 2021" +--- + + +# Non-deterministic Finite Automata + +In the seminars, we have encountered *Deterministic Finite Automata* (DFAs). In this task, we will +work with a generalized version of the DFA that is called *Non-deterministic Finite Automaton +(NFA)*. NFA is the 5-tuple + +* set of states $\mathcal{Q}$, +* a finite set of input symbols $\Sigma$ (called alphabet), +* a set of transitions $\Delta \subseteq \mathcal{Q} \times \Sigma \times \mathcal{Q}$, +* a start state $q_0$, +* a set of final states $\mathcal{F} \subseteq \mathcal{Q}$. + +In other words, NFA is just a directed graph whose vertices are states and transitions are edges +labelled by symbols from $\Sigma$, i.e., if $(s,a,t)\in\Delta$ then there is an edge leading +from the state $s$ to the state $t$ labelled by $a\in\Sigma$. We say that NFA accepts a word +$w=a_1a_2\ldots a_n\in\Sigma^*$ (i.e., a finite sequence of symbols form $\Sigma$) if there +exists a path leading from the start state into a final one labelled consecutively by symbols +$a_1,a_2,\ldots,a_n$. + +An example of an NFA is depicted in the figure below. This NFA accepts e.g. words $abb$ or +$aba$. On the other hand, it accept neither $ba$ nor $abab$. + +Example of NFA where $\mathcal Q=\{1,2,3,4\}$, $\Sigma=\{a,b\}$, $q_0=1$, $\mathcal F=\{2,3\}$ +and $\Delta=\{(1,a,2),(2,b,2),(1,a,3),(3,b,4),(4,a,3),(2,a,4)\}$. + + + + +## Haskell +Your assignment is to implement a function that generates the language accepted by a given NFA. +However, since such a language is potentially infinite, the problem is simplified to listing all +words of given length that are accepted by the automaton. + +For the purpose of this task, the NFA is defined as follows. First, each possible transition is +represented as the triplet + +```haskell +data Transition a b = Tr a b a +``` + +where the type `a` represents the states in $\mathcal{Q}$ and `b` are the symbols $\Sigma$; +hence, the transition from the first member of the triplet to the third member of the triplet is +possible if and only if the next input symbol is equal to the second member of the triplet. +The NFA itself is defined as +```haskell +data Automaton a b = NFA [Transition a b] a [a] +``` +where the first member is the exhaustive list of transitions, the second member is the start state +$q_0$, and the third is the list of final states $\mathcal{F}$. The particular automaton +from the figure is defined as follows: +```haskell +nfa::Automaton Int Char +nfa = NFA [Tr 1 'a' 2, + Tr 2 'b' 2, + Tr 1 'a' 3, + Tr 3 'b' 4, + Tr 4 'a' 3, + Tr 2 'a' 4] + 1 + [2,3] +``` + +### `accepts`-function +The first part of the task is to decide whether a particular word is accepted by a given automaton. +To that end, implement the function +```haskell +accepts :: (Eq a, Eq b) => Automaton a b -> [b] -> Bool +``` +which takes and automaton and a list of symbols that represents the word, and returns \texttt{True} +iff the word is accepted. Notice, `a` and `b` are instances of `Eq`. The function is used as +follows. +```haskell +> accepts nfa "aba" +True + +> accepts nfa "abab" +False +``` + + +_**Hint:**_ One possibility how to implement the function `accepts` is to maintain a list of +accessible states after consuming an initial segment of the input word. + +Consider the NFA from the figure and the word `"aba"`. We start with the list containing the start +state `[1]`. Then we modify this list by the transitions corresponding to the letters as follows: +```haskell +[1] -a-> [2,3] -b-> [2,4] -a-> [3,4] +``` +Finally, we check if the resulting list of states +contains a final state. `3` is a final state, the output is `True`. + +Another example for `"abab"` is +```haskell +[1] -a-> [2,3] -b-> [2,4] -a-> [3,4] -b-> [4] +``` +As `4` is not a final state, the ouput is `False`. + +One more example for `"ba"`: +```haskell +[1] -b-> [] -a-> [] +``` +So the output is `False`. + + +### `lwords`-function + +Next, given the automaton, its alphabet, and a length, generate the list of all words of the given +length that are accepted by the automaton. Implement the function +```haskell +lwords :: (Eq a, Eq b) => [b] -> Automaton a b -> Int -> [[b]] +``` +where the first input is the alphabet as list of unique symbols, the second is the automaton, and +the third is the word length. The function returns a list of the accepted words, i.e., a list of +lists of symbols. In terms of the task evaluation, the ordering of the words is not relevant. The +function operates as follows. + +```haskell +> lwords "ab" nfa 0 +[] +> lwords "ab" nfa 1 +["a"] +> lwords "ab" nfa 3 +["aaa","aba","abb"] +``` + +_**Hint:**_ first, generate all possible words of the given length. Then, filter the words using +the function `accepts`. + +::: details Solution +```haskell +import Control.Monad.State + +data Transition a b = Tr a b a deriving Show +data Automaton a b = NFA [(Transition a b)] a [a] deriving Show + +--nfa::Automaton Int Char +--nfa = NFA [(Tr 1 'a' 1), (Tr 1 'b' 1), (Tr 1 'c' 1), (Tr 1 'b' 2), (Tr 1 'c' 2)] 1 [2] + + +walk :: (Eq a, Eq b) => Automaton a b -> a -> [b] -> Bool +walk aut@(NFA trs start finals) state [] | elem state finals = True + | otherwise = False +walk aut@(NFA trs start finals) state (c:ws) = or [ (walk aut t ws) | tr@(Tr f c' t) <- trs, c' == c, f == state] + +accepts :: (Eq a, Eq b) => Automaton a b -> [b] -> Bool +accepts aut@(NFA trs start finals) word = walk aut start word + +combinations :: [a] -> Int -> State [[a]] [[a]] +combinations cs 0 = do ws <- get + return ws +combinations cs n = do ws <- get + let ws' = [ c:w | c <- cs , w <- ws] + put ws' + combinations cs (n-1) + +lwords :: (Eq a, Eq b) => [b] -> Automaton a b -> Int -> [[b]] +lwords abc aut n = reverse $ [ w | w <- p, accepts aut w] where + p = evalState (combinations abc n) [[]] + +``` +::: + +## Racket + +Implement the functions `accepts` and `lwords`. In this task, you may assume that the input word +will always be a string. Thus you can use functions `string->list` and `list->string` for converting +strings to lists of characters and vice versa. +Of course, we need to adapt the automaton representation for Racket. +First, each possible transition is represented as the triplet: +```scheme +(struct transition (from-state symbol to-state)) +``` +where `from-state` and `to-state` are states in $\mathcal{Q}$ and `symbol` is a symbol in $\Sigma$. +We can construct the NFA itself as +```scheme +(struct automaton (trans init-state final-states)) +``` +where the first member `trans` is the exhaustive list of transitions, the second member `init-state` +is the start state $q_0$, and the third member `final-state` is the list of final states +$\mathcal{F}$. +The particular automaton from the figure is defined as follows. +```scheme +(define nfa + (make-automaton + (list (make-trans 1 #\a 2) + (make-trans 2 #\b 2) + (make-trans 1 #\a 3) + (make-trans 3 #\b 4) + (make-trans 4 #\a 3) + (make-trans 2 #\a 4)) + 1 + (list 2 3))) +``` + +Implement the function +```scheme +(accepts automaton word) +``` +which takes an automaton and a string that represents the word to be parsed by the automaton, and +returns `#t` if the word is accepted, `#f` otherwise. +The function is used as follows: +```scheme +> (accepts nfa "aba") +#t + +> (accepts nfa "abab") +#f +``` +\noindent + +Next, given the automaton, its alphabet, and a length, generate the list of all words of the given +length that are accepted by the automaton. Implement the function +```scheme +(lwords alphabet automaton n) +``` +where the first input `alphabet` is the alphabet passed as a string, the second input +`automaton` is the automaton, and the third input `n` is the word length. +The function returns a list of the accepted words, i.e., a list of lists of characters. +In terms of the task evaluation, the ordering of the words is not relevant. +The function operates as follows: +```scheme +> (lwords "ab" nfa 0) +'() + +> (lwords "ab" nfa 1) +'("a") + +> (lwords "ab" nfa 3) +'("aaa" "aba" "abb") +``` + +For testing purposes your file should be named `task3.rkt` and start with the following lines: +```scheme +#lang racket + +(provide accepts + lwords) +``` + +::: details Solution +```scheme +#lang racket + +(provide accepts + lwords) + +(struct transition (from-state symbol to-state)) +(struct automaton (trans init-state final-states)) + +(define ((s-next fa a) s) + (define tr (automaton-trans fa)) + (map transition-to-state + (filter (lambda (t) (and (equal? s (transition-from-state t)) + (equal? a (transition-symbol t)))) + tr))) + +(define ((next fa) a ss) + (define tr (automaton-trans fa)) + (apply append (map (s-next fa a) ss))) + +(define (accepts fa w) + (define states (foldl (next fa) (list (automaton-init-state fa)) (string->list w))) + (if (eq? #f (ormap (lambda (s) (member s (automaton-final-states fa))) states)) + #f + #t)) + +(define (words alp n) + (cond + ((= n 0) '()) + ((= n 1) (map list alp)) + (else (apply append + (map (lambda (w) + (map (lambda (a) (cons a w)) alp)) + (words alp (- n 1))))))) + +(define (lwords alp nfa n) + (filter (lambda (w) (accepts nfa (list->string w))) + (words (string->list alp) n))) + + +(define nfa + (automaton + (list (transition 1 #\a 2) + (transition 2 #\b 2) + (transition 1 #\a 3) + (transition 3 #\b 4) + (transition 4 #\a 3) + (transition 2 #\a 4)) + 1 + (list 2 3))) + + +(accepts nfa "aba") +(lwords "ab" nfa 3) +``` +::: diff --git a/exams/finite-automata/task.rkt b/exams/finite-automata/task.rkt new file mode 100644 index 0000000..5aef08a --- /dev/null +++ b/exams/finite-automata/task.rkt @@ -0,0 +1,53 @@ +#lang racket + +(provide accepts + lwords) + +(struct transition (from-state symbol to-state)) +(struct automaton (trans init-state final-states)) + +(define ((s-next fa a) s) + (define tr (automaton-trans fa)) + (map transition-to-state + (filter (lambda (t) (and (equal? s (transition-from-state t)) + (equal? a (transition-symbol t)))) + tr))) + +(define ((next fa) a ss) + (define tr (automaton-trans fa)) + (apply append (map (s-next fa a) ss))) + +(define (accepts fa w) + (define states (foldl (next fa) (list (automaton-init-state fa)) (string->list w))) + (if (eq? #f (ormap (lambda (s) (member s (automaton-final-states fa))) states)) + #f + #t)) + +(define (words alp n) + (cond + ((= n 0) '()) + ((= n 1) (map list alp)) + (else (apply append + (map (lambda (w) + (map (lambda (a) (cons a w)) alp)) + (words alp (- n 1))))))) + +(define (lwords alp nfa n) + (filter (lambda (w) (accepts nfa (list->string w))) + (words (string->list alp) n))) + + +(define nfa + (automaton + (list (transition 1 #\a 2) + (transition 2 #\b 2) + (transition 1 #\a 3) + (transition 3 #\b 4) + (transition 4 #\a 3) + (transition 2 #\a 4)) + 1 + (list 2 3))) + + +(accepts nfa "aba") +(lwords "ab" nfa 3) diff --git a/exams/finite-automata/task3_4_en.pdf b/exams/finite-automata/task3_4_en.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cf782f8d4e346c7b9e1956c715978c25b0b9c37b GIT binary patch literal 172122 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�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 diff --git a/exams/justify/index.md b/exams/justify/index.md new file mode 100644 index 0000000..2c15695 --- /dev/null +++ b/exams/justify/index.md @@ -0,0 +1,304 @@ +--- +outline: deep +title: "Exam Task: Text Justification" +--- + +# Text Justification + +Given an array of strings words and a width `maxWidth`, format the text such that each line has +exactly `maxWidth` characters and is fully (left and right) justified. + +You should pack your words in a greedy approach; that is, pack as many words as you can in each +line. Pad extra spaces `' '` when necessary so that each line has exactly `maxWidth` characters. + +Extra spaces between words should be distributed as evenly as possible. If the number of spaces on a +line does not divide evenly between words, the empty slots on the left will be assigned more spaces +than the slots on the right. + +For the last line of text, it should be left-justified, and no extra space is inserted between +words. + +Note: + +* A word is defined as a character sequence consisting of non-space characters only. +* Each word's length is guaranteed to be greater than 0 and not exceed maxWidth. +* The input array words contains at least one word. + +## Examples + +```haskell +Input: + words = ["This", "is", "an", "example", "of", "text", "justification."] + maxWidth = 16 +Output: +[ + "This is an", + "example of text", + "justification. " +] +``` + +```haskell +Input: + words = ["What","must","be","acknowledgment","shall","be"] + maxWidth = 16 +Output: +[ + "What must be", + "acknowledgment ", + "shall be " +] +``` +Explanation: Note that the last line is `"shall be "` instead of `"shall be"`, because the +last line must be left-justified instead of fully-justified. +Note that the second line is also left-justified because it contains only one word. + +```haskell +Input: words = ["Science","is","what","we" + ,"understand","well","enough" + ,"to","explain","to","a" + ,"computer.","Art","is" + ,"everything","else","we","do"], +maxWidth = 20 +Output: +[ + "Science is what we", + "understand well", + "enough to explain to", + "a computer. Art is", + "everything else we", + "do " +] +``` + + +Constraints: + +* `1 <= words.length <= 300` +* `1 <= words[i].length <= 20` +* `words[i]` consists of only English letters and symbols. +* `1 <= maxWidth <= 100` +* `words[i].length <= maxWidth` + + +[This task is taken from LeetCode.](https://leetcode.com/problems/text-justification/) + + +## Racket + +::: details Solution +```scheme +#lang racket + +(require racket/match) + +(define (total-chars words) + (foldl + 0 (map string-length words))) + +(define (pad words maxWidth) + (let ((spaces (- maxWidth (foldl + 0 (map string-length words))))) + (cond + [(null? words) null] + [(= 1 (length words)) + (string-append (car words) (make-string (- maxWidth (string-length (car words))) #\space))] + [else + (let*-values (((words-to-pad) (length (cdr words))) + ((lspace-len) (quotient spaces words-to-pad)) + ((lspace) (make-string lspace-len #\space)) + ((bspace-len) (ceiling (/ spaces words-to-pad))) + ((bspace) (make-string bspace-len #\space)) + ((btimes) (- spaces (* words-to-pad lspace-len))) + ((bw lw) (split-at words (add1 btimes)))) + (string-append + (string-join bw bspace) + (if (null? lw) "" (string-join lw lspace #:before-first lspace))))]))) + + +(define (pad-last words maxWidth) + (let ((trail-space (- maxWidth (+ (sub1 (length words)) (total-chars words))))) + (string-join words " " #:after-last (make-string trail-space #\space)))) + + +(define (break words maxwidth [curr-width 0] [acc '()]) + (if (empty? words) + (list (reverse acc) words) + (let* ((wlen (string-length (car words)))) + (if + (> (+ curr-width wlen) maxwidth) + (list (reverse acc) words) + (break (cdr words) + maxwidth + (+ 1 curr-width wlen) + (cons (car words) acc)))))) + + +(define (break-all words max-width) + (define res (break words max-width)) + (define row (car res)) + (define ws (cadr res)) + (cons row (if (empty? ws) ws (break-all ws max-width)))) + + +(define (justify lst max-width) + (define (spaces n) (make-string n #\space)) + (define broken-lines (break-all lst max-width)) + (define butlast (take broken-lines (- (length broken-lines) 1))) + (define justif (map (lambda (r) (pad r max-width)) butlast)) + (define last-line (string-join (last broken-lines))) + (define last-filled (string-append + last-line + (spaces (- max-width (string-length last-line))))) + (append justif (list last-filled))) + + +(define words1 '("This" "is" "an" "example" "of" "text" "justification.")) +(justify words1 16) +(map string-length (justify words1 16)) + +(define words2 '("What" "must" "be" "acknowledgment" "shall" "be")) +(justify words2 16) +(map string-length (justify words2 16)) + +(define words3 '("Science" "is" "what" "we" + "understand" "well" "enough" + "to" "explain" "to" "a" "computer." + "Art" "is" "everything" "else" "we" "do")) +(justify words3 20) +(map string-length (justify words3 20)) +``` +::: + +::: details Advanced Solution +```scheme +#lang racket + +(require racket/match) + +(define (total-chars words) + (foldl + 0 (map string-length words))) + +(define (pad words maxWidth) + (let ((spaces (- maxWidth (foldl + 0 (map string-length words))))) + (cond + [(null? words) null] + [(= 1 (length words)) + (string-append (car words) (make-string (- maxWidth (string-length (car words))) #\space))] + [else + (let*-values (((words-to-pad) (length (cdr words))) + ((lspace-len) (quotient spaces words-to-pad)) + ((lspace) (make-string lspace-len #\space)) + ((bspace-len) (ceiling (/ spaces words-to-pad))) + ((bspace) (make-string bspace-len #\space)) + ((btimes) (- spaces (* words-to-pad lspace-len))) + ((bw lw) (split-at words (add1 btimes)))) + (string-append + (string-join bw bspace) + (if (null? lw) "" (string-join lw lspace #:before-first lspace))))]))) + + +(define (pad-last words maxWidth) + (let ((trail-space (- maxWidth (+ (sub1 (length words)) (total-chars words))))) + (string-join words " " #:after-last (make-string trail-space #\space)))) + + +(define (justify words maxWidth) + (match words + ['() ""] + [(list a ...) + #:when (<= (+ (sub1 (length a)) (foldl + 0 (map string-length a))) maxWidth) + (list (pad-last a maxWidth))] + [(list a ..1 b ..1) + #:when (<= (+ (sub1 (length a)) (foldl + 0 (map string-length a))) maxWidth) + (cons (pad a maxWidth) (justify b maxWidth))])) + + +(define words1 '("This" "is" "an" "example" "of" "text" "justification.")) +(justify words1 16) +(map string-length (justify words1 16)) + +(define words2 '("What" "must" "be" "acknowledgment" "shall" "be")) +(justify words2 16) +(map string-length (justify words2 16)) + +(define words3 '("Science" "is" "what" "we" + "understand" "well" "enough" + "to" "explain" "to" "a" "computer." + "Art" "is" "everything" "else" "we" "do")) +(justify words3 20) +(map string-length (justify words3 20)) +``` +::: + + +## Haskell + +::: details Solution +```haskell +import Data.List (intercalate) + +pad :: [String] -> Int -> String +pad [] _ = [] +pad (w:[]) maxWidth = w ++ replicate (maxWidth - length w) ' ' +pad words@(w:ws) maxWidth = (intercalate lspace bw) ++ rights where + + ceilDiv :: (Integral b, Integral a1, Integral a2) => a1 -> a2 -> b + ceilDiv x y = ceiling ((fromIntegral x) / (fromIntegral y)) + + spaces = maxWidth - sum (map length words) + words_to_pad = length ws + rspace_len = quot spaces words_to_pad + lspace_len = ceilDiv spaces words_to_pad + rspace = replicate rspace_len ' ' + lspace = replicate lspace_len ' ' + ltimes = spaces - (words_to_pad * rspace_len) + (bw, lw) = splitAt (ltimes+1) words + rights = if (length lw == 0) + then "" + else rspace ++ (intercalate rspace lw) + +breakWords :: [String] -> Int -> ([String], [String]) +breakWords words maxWidth = _breakWords words maxWidth 0 [] where + _breakWords [] _ _ acc = (reverse acc, []) + _breakWords words@(w:ws) maxWidth currWidth acc = + if (currWidth + wlen) > maxWidth + then (reverse acc, words) + else _breakWords ws maxWidth (currWidth + wlen + 1) (w:acc) where + wlen = length w + + +breakAll :: [String] -> Int -> [[String]] +breakAll words maxWidth = (line:lines) where + lines = if length rest == 0 + then [] + else breakAll rest maxWidth + (line, rest) = breakWords words maxWidth + + +justify :: Int -> [String] -> [String] +justify maxWidth words = justified ++ [lastFilled] where + brokenLines = breakAll words maxWidth + justified = map (\r -> pad r maxWidth) (init brokenLines) + lastLine = intercalate " " (last brokenLines) + lastFilled = lastLine ++ replicate (maxWidth - length lastLine) ' ' + + +printJustified :: Int -> [String] -> IO () +printJustified w = do (mapM_ putStrLn) . justify w + +main = do + let mw1 = 16 + ws1 = ["This", "is", "an", "example", "of", "text", "justification."] + + mw2 = 16 + ws2 = ["What","must","be","acknowledgment","shall","be"] + + mw3 = 20 + ws3 = ["Science","is","what","we" + ,"understand","well" + ,"enough","to","explain","to" + ,"a","computer.","Art","is" + ,"everything","else","we","do"] + + printJustified mw1 ws1 +``` +::: diff --git a/exams/justify/task-advanced.rkt b/exams/justify/task-advanced.rkt new file mode 100644 index 0000000..41e066a --- /dev/null +++ b/exams/justify/task-advanced.rkt @@ -0,0 +1,56 @@ +#lang racket + +(require racket/match) + +(define (total-chars words) + (foldl + 0 (map string-length words))) + +(define (pad words maxWidth) + (let ((spaces (- maxWidth (foldl + 0 (map string-length words))))) + (cond + [(null? words) null] + [(= 1 (length words)) + (string-append (car words) (make-string (- maxWidth (string-length (car words))) #\space))] + [else + (let*-values (((words-to-pad) (length (cdr words))) + ((lspace-len) (quotient spaces words-to-pad)) + ((lspace) (make-string lspace-len #\space)) + ((bspace-len) (ceiling (/ spaces words-to-pad))) + ((bspace) (make-string bspace-len #\space)) + ((btimes) (- spaces (* words-to-pad lspace-len))) + ((bw lw) (split-at words (add1 btimes)))) + (string-append + (string-join bw bspace) + (if (null? lw) "" (string-join lw lspace #:before-first lspace))))]))) + + +(define (pad-last words maxWidth) + (let ((trail-space (- maxWidth (+ (sub1 (length words)) (total-chars words))))) + (string-join words " " #:after-last (make-string trail-space #\space)))) + + +(define (justify words maxWidth) + (match words + ['() ""] + [(list a ...) + #:when (<= (+ (sub1 (length a)) (foldl + 0 (map string-length a))) maxWidth) + (list (pad-last a maxWidth))] + [(list a ..1 b ..1) + #:when (<= (+ (sub1 (length a)) (foldl + 0 (map string-length a))) maxWidth) + (cons (pad a maxWidth) (justify b maxWidth))])) + + +(define words1 '("This" "is" "an" "example" "of" "text" "justification.")) +(justify words1 16) +(map string-length (justify words1 16)) + +(define words2 '("What" "must" "be" "acknowledgment" "shall" "be")) +(justify words2 16) +(map string-length (justify words2 16)) + +(define words3 '("Science" "is" "what" "we" + "understand" "well" "enough" + "to" "explain" "to" "a" "computer." + "Art" "is" "everything" "else" "we" "do")) +(justify words3 20) +(map string-length (justify words3 20)) diff --git a/exams/justify/task-basic.rkt b/exams/justify/task-basic.rkt new file mode 100644 index 0000000..6c73574 --- /dev/null +++ b/exams/justify/task-basic.rkt @@ -0,0 +1,88 @@ +#lang racket + +(require racket/match) + +(define (total-chars words) + (foldl + 0 (map string-length words))) + +(define (pad words maxWidth) + (let ((spaces (- maxWidth (foldl + 0 (map string-length words))))) + (cond + [(null? words) null] + [(= 1 (length words)) + (string-append (car words) (make-string (- maxWidth (string-length (car words))) #\space))] + [else + (let*-values (((words-to-pad) (length (cdr words))) + ((lspace-len) (quotient spaces words-to-pad)) + ((lspace) (make-string lspace-len #\space)) + ((bspace-len) (ceiling (/ spaces words-to-pad))) + ((bspace) (make-string bspace-len #\space)) + ((btimes) (- spaces (* words-to-pad lspace-len))) + ((bw lw) (split-at words (add1 btimes)))) + (string-append + (string-join bw bspace) + (if (null? lw) "" (string-join lw lspace #:before-first lspace))))]))) + + +(define (pad-last words maxWidth) + (let ((trail-space (- maxWidth (+ (sub1 (length words)) (total-chars words))))) + (string-join words " " #:after-last (make-string trail-space #\space)))) + + +(define (break words maxwidth [curr-width 0] [acc '()]) + (if (empty? words) + (list (reverse acc) words) + (let* ((wlen (string-length (car words)))) + (if + (> (+ curr-width wlen) maxwidth) + (list (reverse acc) words) + (break (cdr words) + maxwidth + (+ 1 curr-width wlen) + (cons (car words) acc)))))) + + +(define (break-all words max-width) + (define res (break words max-width)) + (define row (car res)) + (define ws (cadr res)) + (cons row (if (empty? ws) ws (break-all ws max-width)))) + + +(define (justify lst max-width) + (define (spaces n) (make-string n #\space)) + (define broken-lines (break-all lst max-width)) + (define butlast (take broken-lines (- (length broken-lines) 1))) + (define justif (map (lambda (r) (pad r max-width)) butlast)) + (define last-line (string-join (last broken-lines))) + (define last-filled (string-append + last-line + (spaces (- max-width (string-length last-line))))) + (append justif (list last-filled))) + + +; (define (justify words maxWidth) +; (match words +; ['() ""] +; [(list a ...) +; #:when (<= (+ (sub1 (length a)) (foldl + 0 (map string-length a))) maxWidth) +; (list (pad-last a maxWidth))] +; [(list a ..1 b ..1) +; #:when (<= (+ (sub1 (length a)) (foldl + 0 (map string-length a))) maxWidth) +; (cons (pad a maxWidth) (justify b maxWidth))])) + + +(define words1 '("This" "is" "an" "example" "of" "text" "justification.")) +(justify words1 16) +(map string-length (justify words1 16)) + +(define words2 '("What" "must" "be" "acknowledgment" "shall" "be")) +(justify words2 16) +(map string-length (justify words2 16)) + +(define words3 '("Science" "is" "what" "we" + "understand" "well" "enough" + "to" "explain" "to" "a" "computer." + "Art" "is" "everything" "else" "we" "do")) +(justify words3 20) +(map string-length (justify words3 20)) diff --git a/exams/justify/task.hs b/exams/justify/task.hs new file mode 100644 index 0000000..943812a --- /dev/null +++ b/exams/justify/task.hs @@ -0,0 +1,67 @@ +import Data.List (intercalate) + + +pad :: [String] -> Int -> String +pad [] _ = [] +pad (w:[]) maxWidth = w ++ replicate (maxWidth - length w) ' ' +pad words@(w:ws) maxWidth = (intercalate lspace bw) ++ rights where + + ceilDiv :: (Integral b, Integral a1, Integral a2) => a1 -> a2 -> b + ceilDiv x y = ceiling ((fromIntegral x) / (fromIntegral y)) + + spaces = maxWidth - sum (map length words) + words_to_pad = length ws + rspace_len = quot spaces words_to_pad + lspace_len = ceilDiv spaces words_to_pad + rspace = replicate rspace_len ' ' + lspace = replicate lspace_len ' ' + ltimes = spaces - (words_to_pad * rspace_len) + (bw, lw) = splitAt (ltimes+1) words + rights = if (length lw == 0) + then "" + else rspace ++ (intercalate rspace lw) + +breakWords :: [String] -> Int -> ([String], [String]) +breakWords words maxWidth = _breakWords words maxWidth 0 [] where + _breakWords [] _ _ acc = (reverse acc, []) + _breakWords words@(w:ws) maxWidth currWidth acc = + if (currWidth + wlen) > maxWidth + then (reverse acc, words) + else _breakWords ws maxWidth (currWidth + wlen + 1) (w:acc) where + wlen = length w + + +breakAll :: [String] -> Int -> [[String]] +breakAll words maxWidth = (line:lines) where + lines = if length rest == 0 + then [] + else breakAll rest maxWidth + (line, rest) = breakWords words maxWidth + + +justify :: Int -> [String] -> [String] +justify maxWidth words = justified ++ [lastFilled] where + brokenLines = breakAll words maxWidth + justified = map (\r -> pad r maxWidth) (init brokenLines) + lastLine = intercalate " " (last brokenLines) + lastFilled = lastLine ++ replicate (maxWidth - length lastLine) ' ' + + +printJustified :: Int -> [String] -> IO () +printJustified w = do (mapM_ putStrLn) . justify w + +main = do + let mw1 = 16 + ws1 = ["This", "is", "an", "example", "of", "text", "justification."] + + mw2 = 16 + ws2 = ["What","must","be","acknowledgment","shall","be"] + + mw3 = 20 + ws3 = ["Science","is","what","we" + ,"understand","well" + ,"enough","to","explain","to" + ,"a","computer.","Art","is" + ,"everything","else","we","do"] + + printJustified mw1 ws1 diff --git a/exams/least-common-ancestor/index.md b/exams/least-common-ancestor/index.md new file mode 100644 index 0000000..b5cbc17 --- /dev/null +++ b/exams/least-common-ancestor/index.md @@ -0,0 +1,227 @@ +--- +outline: deep +title: "Exam Task: Least Common Ancestor" +subtitle: "From: Exam 3 - 2023" +--- + +# Least Common Ancestor + +Suppose we have a binary tree $t$. For any two nodes $x,y$ in the tree $t$, the *least common +ancestor* of $x$ and $y$ is defined as the node $z$ satisfying the following two conditions: + +1. $x$ and $y$ are descendants of $z$, +2. if there is a node $z'$ having $x$ and $y$ as descendants, then $z$ is descendant of $z'$. + +To find the least common ancestor of two nodes $x$ and $y$ in a tree $t$, we follow the steps below: + +1. find the path $p_x$ from the root $r$ of $t$ to $x$ (i.e., a list of nodes starting in $r$ and + ending in $x$), +2. find the path $p_y$ from $r$ to $y$, +3. consider the common prefix of $p_x$ and $p_y$, the last node in the common prefix is the least + common ancestor. + +Consider, for example, the binary tree depicted in Figure~\ref{fig:tree}. The least common ancestor +of $3$ and $5$ is $2$. Indeed, the path from the root $1$ to $3$ is $1,2,3$. The path from $1$ +to $5$ is $1,2,4,5$. Their common prefix is $1,2$ whose last element is $2$. + +Similarly, the least common ancestor of $5$ and $8$ is $1$. The least common ancestor of +$7$ and $7$ is $7$. + + + + +## Racket + +In Racket, implement a function `(common-ancestor x y tree)` that takes +two nodes `x`, `y` and a binary tree `tree`, and returns the least common-ancestor +of `x` and `y` in `tree`. If `x` or `y` does not belong to `tree`, +the function returns \Verb|#f|. + +To represent binary trees in Racket, use the following structures: +```scheme +(struct node (val left right) #:transparent) +(struct leaf (val) #:transparent) +``` +Thus the leaves (nodes without children) are represented as, for instance, `(leaf 6)`. +The nodes with children are represented as, for instance, `(node 1 (leaf 2) (leaf 3))`. + +To implement the function `common-ancestor`, implement first a function +`(find-path x tree)` that finds a path from the root of `tree` to `x`. +For example, +```scheme +(define tree (node 1 (node 2 (leaf 5) (leaf 6)) + (node 3 (leaf 4) (leaf 7)))) + +> (find-path 7 tree) +'(1 3 7) +``` + +Your file should be called \texttt{task3.rkt} and should export the `find-path` and +`common-ancestor` functions and the structures `node` and `leaf`. +```scheme +#lang racket + +(provide find-path + common-ancestor + (struct-out node) + (struct-out leaf)) + +(struct node (val kids) #:transparent) +(struct leaf (val) #:transparent) + +(define (find-path x tree) + ; Implement me! + ) + +(define (common-ancestor x y tree) + ; Implement me! + ) +``` + +### Example + +```scheme +(define tree2 (node 1 (node 2 (leaf 3) + (node 4 (leaf 5) + (leaf 6))) + (node 7 (leaf 8) + (leaf 9)))) + +> (common-ancestor 3 5 tree2) +2 + +> (common-ancestor 3 15 tree2) +#f +``` + +### Hints + +To find the common prefix of two lists, use the function `(take-common-prefix lst1 lst2)`. + +::: details Solution +```scheme +#lang racket + +(provide find-path + common-ancestor + (struct-out node) + (struct-out leaf)) + +(struct node (val left right) #:transparent) +(struct leaf (val) #:transparent) + +(define tree (node 1 (node 2 (leaf 5) (leaf 6)) (node 3 (leaf 4) (leaf 7)))) + +(define (find-path x tree) + (match tree + [(leaf y) (if (equal? x y) + (list x) + '())] + [(node y l r) (if (equal? x y) + (list x) + (let* ([pl (find-path x l)] + [pr (find-path x r)] + [both (append pl pr)]) + (if (null? both) + '() + (cons y both))))])) + +(define (common-ancestor x y tree) + (define px (find-path x tree)) + (define py (find-path y tree)) + (define common (take-common-prefix px py)) + (if (null? common) + #f + (last common))) +``` +::: + +## Haskell + +In \textbf{Haskell}, implement a function +`commonAncestor :: Eq a => a -> a -> Tree a -> Maybe a` that takes +two nodes and a binary tree, and returns the least common ancestor of these two nodes. +If it does not exist, the function returns `Nothing`. + +To represent binary trees in Haskell, use the following data type: +```haskell +data Tree a = Leaf a + | Node a (Tree a) (Tree a) deriving (Eq,Show) +``` +Thus the leaves (nodes without children) are represented as, for instance, `Leaf 6`. +The nodes with children are represented as, for instance, +`Node 1 (Leaf 2) (Leaf 3)`. + +To implement the function `commonAncestor`, implement first a function\\ +`findPath :: Eq a => a -> Tree a -> [a]` that finds for a given node and a binary tree +the path from the root to that node. For example, +```haskell +tree = Node 1 (Node 2 (Leaf 5) (Leaf 6)) (Node 3 (Leaf 4) (Leaf 7)) + +> findPath 7 tree +[1,3,7] +``` + +Your file should be called `Task4.hs` and should export the `commonAncestor`, +`findPath` functions and the type `Tree`. + +```haskell +module Task4 (findPath, commonAncestor, Tree(..)) where + +data Tree a = Leaf a + | Node a (Tree a) (Tree a) deriving (Eq,Show) + +findPath :: Eq a => a -> Tree a -> [a] +-- implement me! + +commonAncestor :: Eq a => a -> a -> Tree a -> Maybe a +-- implement me! +``` + +### Example + +```haskell +tree2 = Node 1 (Node 2 (Leaf 3) + (Node 4 (Leaf 5) + (Leaf 6))) + (Node 7 (Leaf 8) + (Leaf 9)) + +> commonAncestor 3 5 tree2 +Just 2 + +> commonAncestor 3 15 tree2 +Nothing +``` + +::: details Solution +```haskell +module Task4 (findPath, commonAncestor, Tree(..)) where + +data Tree a = Leaf a + | Node a (Tree a) (Tree a) deriving (Eq,Show) + +tree = Node 1 (Node 2 (Leaf 5) (Leaf 6)) (Node 3 (Leaf 4) (Leaf 7)) +tree2 = Node 1 (Node 2 (Leaf 3) + (Node 4 (Leaf 5) + (Leaf 6))) + (Node 7 (Leaf 8) + (Leaf 9)) + +findPath :: Eq a => a -> Tree a -> [a] +findPath x (Leaf y) | x == y = [x] + | otherwise = [] +findPath x (Node y l r) | x == y = [x] + | otherwise = let pl = findPath x l + pr = findPath x r + in if null (pl ++ pr) then [] + else y:(pl++pr) + +commonAncestor :: Eq a => a -> a -> Tree a -> Maybe a +commonAncestor x y t | null common = Nothing + | otherwise = Just $ last common + where px = findPath x t + py = findPath y t + common = [x | (x,y) <- zip px py, x==y ] +``` +::: diff --git a/exams/least-common-ancestor/main_en.pdf b/exams/least-common-ancestor/main_en.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4981c4492218cad1c1f724cc8dfb6d9a1074c766 GIT binary patch literal 76638 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 M2ow|&3X%x_1#;hAQ2+n{ literal 0 HcmV?d00001 diff --git a/exams/least-common-ancestor/task3.reference.rkt b/exams/least-common-ancestor/task3.reference.rkt new file mode 100644 index 0000000..919b04b --- /dev/null +++ b/exams/least-common-ancestor/task3.reference.rkt @@ -0,0 +1,32 @@ +#lang racket +(provide find-path + common-ancestor + (struct-out node) + (struct-out leaf)) + +(struct node (val left right) #:transparent) +(struct leaf (val) #:transparent) + +(define tree (node 1 (node 2 (leaf 5) (leaf 6)) (node 3 (leaf 4) (leaf 7)))) + +(define (find-path x tree) + (match tree + [(leaf y) (if (equal? x y) + (list x) + '())] + [(node y l r) (if (equal? x y) + (list x) + (let* ([pl (find-path x l)] + [pr (find-path x r)] + [both (append pl pr)]) + (if (null? both) + '() + (cons y both))))])) + +(define (common-ancestor x y tree) + (define px (find-path x tree)) + (define py (find-path y tree)) + (define common (take-common-prefix px py)) + (if (null? common) + #f + (last common))) \ No newline at end of file diff --git a/exams/least-common-ancestor/task4.reference.hs b/exams/least-common-ancestor/task4.reference.hs new file mode 100644 index 0000000..882ad04 --- /dev/null +++ b/exams/least-common-ancestor/task4.reference.hs @@ -0,0 +1,28 @@ +module Task4 (findPath, commonAncestor, Tree(..)) where + +data Tree a = Leaf a + | Node a (Tree a) (Tree a) deriving (Eq,Show) + +tree = Node 1 (Node 2 (Leaf 5) (Leaf 6)) (Node 3 (Leaf 4) (Leaf 7)) +tree2 = Node 1 (Node 2 (Leaf 3) + (Node 4 (Leaf 5) + (Leaf 6))) + (Node 7 (Leaf 8) + (Leaf 9)) + +findPath :: Eq a => a -> Tree a -> [a] +findPath x (Leaf y) | x == y = [x] + | otherwise = [] +findPath x (Node y l r) | x == y = [x] + | otherwise = let pl = findPath x l + pr = findPath x r + in if null (pl ++ pr) then [] + else y:(pl++pr) + +commonAncestor :: Eq a => a -> a -> Tree a -> Maybe a +commonAncestor x y t | null common = Nothing + | otherwise = Just $ last common + where px = findPath x t + py = findPath y t + common = [x | (x,y) <- zip px py, x==y ] + \ No newline at end of file diff --git a/exams/least-common-ancestor/tree.tex b/exams/least-common-ancestor/tree.tex new file mode 100644 index 0000000..e697455 --- /dev/null +++ b/exams/least-common-ancestor/tree.tex @@ -0,0 +1,27 @@ +\documentclass[border=0pt]{standalone} +\usepackage{graphicx} +\usepackage{fancyvrb} +\usepackage{xcolor} +\usepackage{bm} +\usepackage{pgf} +\usepackage{tikz} + + +\definecolor{myGray}{rgb}{0.85,0.85,0.85} + +\begin{document} + +\begin{tikzpicture}[level/.style = {level distance = 1.5cm, sibling distance = 1cm}, + level 1/.style={sibling distance=2cm}] + \node {$1$} + child {node {$2$} + child {node {$3$}} + child {node {$4$} + child {node {$5$}} + child {node {$6$}}}} + child {node {$7$} + child {node {$8$}} + child {node {$9$}}}; +\end{tikzpicture} + +\end{document} diff --git a/exams/manhattan-distance/index.md b/exams/manhattan-distance/index.md index 0006ead..fb918be 100644 --- a/exams/manhattan-distance/index.md +++ b/exams/manhattan-distance/index.md @@ -113,7 +113,28 @@ To construct a string from a list of characters `list->string`. ::: details Solution ```scheme -scheme solution +#lang racket +(provide grid) + +(define (absdiff x y) (abs (- x y))) +(define (manhattan x y) (apply + (map absdiff x y))) + +(define/match (nearest-to-char group dist) + (((list (cons a pt)) 0) a) + (((list (cons a _)) _) (char-downcase a)) + (((cons _ _) _) #\.)) + +(define (get-symb pts loc) + (define (keyfn pt) (manhattan loc (cdr pt))) + (let ((groups (group-by keyfn (sort pts < #:key keyfn)))) + (nearest-to-char (car groups) (keyfn (caar groups))))) + +(define (grid pts) + (let ((w (apply max (map cadr pts))) + (h (apply max (map caddr pts)))) + (for/list ((y (add1 h))) + (for/list ((x (add1 w))) + (get-symb pts (list x y)))))) ``` ::: diff --git a/exams/manhattan-distance/task3.rkt b/exams/manhattan-distance/task3.rkt index 04526ad..d03d1f4 100644 --- a/exams/manhattan-distance/task3.rkt +++ b/exams/manhattan-distance/task3.rkt @@ -20,3 +20,11 @@ (for/list ((y (add1 h))) (for/list ((x (add1 w))) (get-symb pts (list x y)))))) + +(define groups + '((#\A 1 1) + (#\B 1 6) + (#\C 8 3) + (#\D 3 4) + (#\E 5 5) + (#\F 8 9))) diff --git a/exams/minesweeper/index.md b/exams/minesweeper/index.md new file mode 100644 index 0000000..0c9482d --- /dev/null +++ b/exams/minesweeper/index.md @@ -0,0 +1,184 @@ +--- +outline: deep +title: "Exam Task: Minesweeper" +subtitle: "From: Exam 2 - 2022" +--- + +# Minesweeper + +Implement a program to mark the number of mines directy adjacent (horizontally, vertically and +diagonally) to squares on a Minesweeper field. + + +Fields with `.` denote an empty field and `*` denote mines: +``` +.*.*. +..*.. +..*.. +..... +``` +Your program should output the following +``` +1*3*1 +13*31 +.2*2. +.111. +``` + +You can break this task down into multiple sub-problems. Instead of solving the whole board, solve +the problem for a specific square $(x,y)$: + +1. Get all the neighbours of $(x,y)$ (staying in-bounds!). + +$$ +\text{neighbours}(\text{board}, (x,y)) = [ + \text{board}_{(x-1,y-1)}, + \text{board}_{(x-1,y)}, + \text{board}_{(x-1,y+1)}, \dots]] +$$ + +2. Count the number of mines among the neighbours. +3. Create a helper function capturing the printing rules: If the current square is a mine, return a + star; otherwise, return the count of neighboring mines, or a dot if there are none. +4. Now apply the procedure to every index. + +## Racket + +Your file should have the extension `.rkt`. You may assume the input is rectangular and non-empty. +The functions `string->list` and `string-split` might be useful to parse the output of the function +`port-lines` which reads from stdin. You can use the following skeleton. +```scheme +; for testing +(define test-board + (map string->list (string-split ".*..\n..*.\n**..\n...*\n*..."))) + +; for converting ints to chars. +(define (int->digit i) (integer->char (+ 48 i))) + +(let* ((input-string (port->lines)) + ; implement parsing of board/sweep for mines + ; assuming counted-board contins a list of list of chars + (sn (map list->string counted-board))) + (for ((l sn)) + (display l) + (newline))) +``` + +::: details Solution +```scheme +#lang racket + +(define board (map string->list (string-split "·*·*·\n··*··\n··*··\n·····"))) + +(define (int->digit i) + (integer->char (+ 48 i))) + +(define (finalizer nu st) + (match (cons nu st) + ((cons _ #\*) #\*) + ((cons 0 _) #\.) + ((cons n _) (int->digit n)))) + +(define (neighbours bss mx my x y) + (for*/list ((i (range (max 0 (- y 1)) (min my (+ y 2)))) + (j (range (max 0 (- x 1)) (min mx (+ x 2))))) + (list-ref (list-ref bss i) j))) + +(define (num nei y x m) + (let* ((neis (nei x y)) + (fnei (filter (curry equal? #\*) neis)) + (countMines (length fnei))) + (finalizer countMines m))) + +(define (sweep board) + (define mx (length (car board))) + (define my (length board)) + (define nei (curry neighbours board mx my)) + (define (inner y xs) (map (curry num nei y) (range 0 mx) xs)) + (map inner (range 0 my) board)) + +(let* ((ss (port->lines)) + (ls (map string->list ss)) + (ln (sweep ls)) + (sn (map list->string ln))) + (for ((l sn)) + (display l) + (newline))) +``` +::: + +## Haskell + +To read multiple lines of input in plain Haskell, we have to tell it how many lines to read. +Assume that this will be done by first reading a number and then calling `getLine` the desired +number of times. Implement a function `readInput :: IO [String]` with the following behaviour +```haskell +ghci> readInput +3 +... +... +... +["...","...","..."] <-- this is the function output +``` + +Your file should have the extension `.hs`. + +```haskell +-- for converting ints to chars +import Data.Char (intToDigit) + +-- for testing +test_board = ["..." + ,".**" + ,"..."] + +main = do + lines <- readInput + putStrLn "\nSweep Result:" + let sw = sweep lines + mapM_ putStrLn sw +``` + +::: details Solution +```haskell +import Control.Monad (replicateM) +import Data.Char (intToDigit) + +slice :: Int -> Int -> [a] -> [a] +slice f t xs = drop f $ take t xs + +neighbours :: Int -> Int -> [String] -> String +neighbours x y board = slice (y-1) (y+2) board >>= slice (x-1) (x+2) + + +sweep :: [String] -> [String] +sweep board = mapi2d pretty board where + + -- fill coordinates with numbers/*/. + mapi2d f = zipWith (\y-> zipWith (\x e-> f e x y) [0..]) [0..] + pretty e x y = finalizer (mines x y) e + finalizer _ '*' = '*' + finalizer 0 _ = '.' + finalizer n _ = intToDigit n + + -- compute number of mines at coords + mines x y = count (neighbours x y board) + count xs = length $ filter (=='*') xs + +readInput :: IO [String] +readInput = do + count <- readLn -- type is infered because of the signature of replicateM + lines <- replicateM (count) getLine + return lines + +test_board = ["..." + ,".**" + ,"..."] + +main = do + lines <- readInput + putStrLn "\nSweep Result:" + let sw = sweep lines + mapM_ putStrLn sw +``` +::: diff --git a/exams/minesweeper/minesweeper.pdf b/exams/minesweeper/minesweeper.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e16b3ce6df81d154f708a6af79a0a334c481cd3b GIT binary patch literal 158049 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 PxcT@o85pEhWibB(r!+=R literal 0 HcmV?d00001 diff --git a/exams/minesweeper/task.hs b/exams/minesweeper/task.hs new file mode 100644 index 0000000..113f17c --- /dev/null +++ b/exams/minesweeper/task.hs @@ -0,0 +1,39 @@ +import Control.Monad (replicateM) +import Data.Char (intToDigit) + +slice :: Int -> Int -> [a] -> [a] +slice f t xs = drop f $ take t xs + +neighbours :: Int -> Int -> [String] -> String +neighbours x y board = slice (y-1) (y+2) board >>= slice (x-1) (x+2) + + +sweep :: [String] -> [String] +sweep board = mapi2d pretty board where + + -- fill coordinates with numbers/*/. + mapi2d f = zipWith (\y-> zipWith (\x e-> f e x y) [0..]) [0..] + pretty e x y = finalizer (mines x y) e + finalizer _ '*' = '*' + finalizer 0 _ = '.' + finalizer n _ = intToDigit n + + -- compute number of mines at coords + mines x y = count (neighbours x y board) + count xs = length $ filter (=='*') xs + +readInput :: IO [String] +readInput = do + count <- readLn + lines <- replicateM (count) getLine + return lines + +test_board = ["..." + ,".**" + ,"..."] + +main = do + lines <- readInput + putStrLn "\nSweep Result:" + let sw = sweep lines + mapM_ putStrLn sw diff --git a/exams/n2-knights/index.md b/exams/n2-knights/index.md new file mode 100644 index 0000000..dcf3acd --- /dev/null +++ b/exams/n2-knights/index.md @@ -0,0 +1,186 @@ +--- +outline: deep +title: "Exam Task: $N^2$-Knights" +subtitle: "" +--- + +# $N^2$-Knights + +## Problem Definition + +In chess, a knight can move to any square that is two squares away horizontally and one square away +vertically, or two squares vertically and one square horizontally. Therefore, its complete move +looks like the letter "L". + + + +The $N^2$-knights puzzle concerns placing $O(N^2)$ knights on an $n \times n$ chessboard so that no +two knights can attack each other. Below, you can see a valid configuration for a 8x8 board. + + + +Determine the validity of $N^2$-knights board configurations. + +### Hints + + +A possible brute force solution generates a list of all knight coordinates on the board, and then +checks their pairwise consistency. +Unlike for $N$-queens, there can be $O(N^2)$ knights in a valid $N^2$-knights configuration, see the +second figure. + + +## Racket + +In Racket, implement the function + +```scheme +(is_valid? board) +``` + +where `board` is a list of lists representing an arbitrarily sized board containing binary values, +where 1 denotes a knight and 0 an empty cell; The function returns `#t` if and only if no knight +threatens another one. + +### Examples +```scheme +(is_valid? ‘((1 0 0 0) + (0 0 0 1) + (1 0 0 0) + (0 1 0 0))) +#t + +(is_valid? '((0 1 0 0) + (0 0 0 1) + (1 0 0 0) + (0 0 1 0))) +#f +``` + + +::: details Solution +```scheme +(define (generate-coords-row row offset row-id) + (if (null? row) + '() + (if (eq? (car row) 1) + (cons (cons row-id offset) (generate-coords-row (cdr row) (+ offset 1) row-id)) + (generate-coords-row (cdr row) (+ offset 1) row-id) + ) + ) +) +(define (generate-coords-board board offset) + (if (null? board) + '() + (append (generate-coords-row (car board) 0 offset) (generate-coords-board (cdr board) (+ offset 1)) ) + ) + ) + +(define (is-valid-pair? coord1 coord2) + (let ((absx (abs (- (car coord1) (car coord2)))) + (absy (abs (- (cdr coord1) (cdr coord2))))) + (cond ((and (eq? absx 1) (eq? absy 2)) #f) + ((and (eq? absx 2) (eq? absy 1)) #f) + (#t #t) + ))) + +(define (is-valid-coord? coord coords) + (cond ((null? coords) #t) + ((is-valid-pair? coord (car coords)) (is-valid-coord? coord (cdr coords))) + (#t #f) + )) + +(define (is-valid-coords? coords) + (cond ((null? coords) #t) + ((is-valid-coord? (car coords) (cdr coords)) (is-valid-coords? (cdr coords))) + (#t #f) + )) + + +(define (is_valid? board) + (let ((coords (generate-coords-board board 0))) + (is-valid-coords? coords) + )) +``` +::: + + + +## Haskell + +In Haskell, implement the function + +```haskell +is_valid :: [[Piece]] -> Bool +``` + +where + +* `data Piece = Nil | Knight`, with `Knight` denoting a knight and `Nil` an empty cell with no + piece; Note, the `Piece` type must be defined in your code. +* The function input represents an arbitrarily sized board containing `Nil` and `Knight` pieces. + +and the function returns `True` if and only if no knight threatens another one. + +### Examples + +```haskell +> is_valid [[Knight, Nil, Nil ,Nil], + [Nil, Nil, Nil, Knight], + [Knight, Nil, Nil, Nil], + [Nil, Knight, Nil, Nil]] +True + +> is_valid [[Nil, Knight, Nil, Nil], + [Nil, Nil, Nil, Knight], + [Knight, Nil, Nil, Nil], + [Nil, Nil, Knight, Nil]] +False +``` + +::: details Solution +```haskell +data Piece = Nil | Knight deriving Show + +enumerate :: [a] -> [(Int, a)] +enumerate xs = zip [0..] xs + + +isknight :: Piece -> Bool +isknight Nil = False +isknight Knight = True + + +knight_coords :: [[Piece]] -> [(Int, Int)] +knight_coords board = map (\(i,j,_) -> (i,j)) ij_ks where + + ij_ks = filter (\(_,_,k) -> isknight k) (concat ij_xs) + ij_xs = map (\(i, jxs) -> _insert i jxs) (enumerate (map enumerate board)) + + _insert :: a -> [(b,c)] -> [(a,b,c)] + _insert x = map (\(y,z) -> (x,y,z)) + + + +is_valid_pair :: (Int,Int) -> (Int,Int) -> Bool +is_valid_pair (x,y) (u,v) | ( (abs (x-u)) == 2 && (abs (y-v)) == 1 ) = False + | ( (abs (x-u)) == 1 && (abs (y-v)) == 2 ) = False + | otherwise = True + + +is_valid :: [[Piece]] -> Bool +is_valid board = all (uncurry is_valid_pair) [(x,y) | x <- cs, y <- cs] where + cs = knight_coords board + + +board = [[Knight, Nil, Nil ,Knight], + [Nil, Nil, Nil, Knight], + [Knight, Nil, Nil, Nil], + [Nil, Knight, Nil, Nil]] + +board2 = [[Nil, Knight, Nil, Nil], + [Nil, Nil, Nil, Knight], + [Knight, Nil, Nil, Nil], + [Nil, Nil, Knight, Nil]] +``` +::: diff --git a/exams/n2-knights/n2-knights.html b/exams/n2-knights/n2-knights.html new file mode 100644 index 0000000..086f655 --- /dev/null +++ b/exams/n2-knights/n2-knights.html @@ -0,0 +1,59 @@ + + + + + + + + + + +

2. N2-knights Problem [Scheme]

+

Determine the validity of n2-knights board configurations.

+

Problem Definition

+

+In chess, a knight can moves to any square that is two squares away horizontally and one squar away vertically, or two squares vertically and one square horizontally. Therefore, its complete move looks like the letter "L". +

+ +

+The n2-knights puzzle concerns placing O(n2) knights on an n×n chessboard so that no two knights can attack each other. +Below, you can see a valid configuration for a 8x8 board. +

+ +

Hints

+

+A possible brute force solution generates a list of all knight coordinates on the board, and then checks their pairwise consistency. +

+

+Unlike for n-queens, there can be O(n2) knights in a valid n2-knights configuration, see the second figure. +

+

Implementation in Scheme

+

In Scheme, implement the function

+
(is_valid? board)
+

where

+
    +
  • + board + is a list of lists representing an arbitrarily sized board containing 0 a 1 values, where 1 denotes a knight and 0 an empty cells; +
  • +
+

+and the function returns #t if and only if no knight threatens another one. +

+

Examples

+

+>(is_valid? ‘( (1 0 0 0)
+                  (0 0 0 1)
+                  (1 0 0 0)
+                  (0 1 0 0) ))
+#t
+
+

+> (is_valid? '((0 1 0 0)
+                  (0 0 0 1)
+                  (1 0 0 0)
+                  (0 0 1 0) ))
+#f
+
+ + diff --git a/exams/n2-knights/task.hs b/exams/n2-knights/task.hs new file mode 100644 index 0000000..e4a3605 --- /dev/null +++ b/exams/n2-knights/task.hs @@ -0,0 +1,43 @@ +data Piece = Nil | Knight deriving Show + +enumerate :: [a] -> [(Int, a)] +enumerate xs = zip [0..] xs + + +isknight :: Piece -> Bool +isknight Nil = False +isknight Knight = True + + +knight_coords :: [[Piece]] -> [(Int, Int)] +knight_coords board = map (\(i,j,_) -> (i,j)) ij_ks where + + ij_ks = filter (\(_,_,k) -> isknight k) (concat ij_xs) + ij_xs = map (\(i, jxs) -> _insert i jxs) (enumerate (map enumerate board)) + + _insert :: a -> [(b,c)] -> [(a,b,c)] + _insert x = map (\(y,z) -> (x,y,z)) + + + +is_valid_pair :: (Int,Int) -> (Int,Int) -> Bool +is_valid_pair (x,y) (u,v) | ( (abs (x-u)) == 2 && (abs (y-v)) == 1 ) = False + | ( (abs (x-u)) == 1 && (abs (y-v)) == 2 ) = False + | otherwise = True + + +is_valid :: [[Piece]] -> Bool +is_valid board = all (uncurry is_valid_pair) [(x,y) | x <- cs, y <- cs] where + cs = knight_coords board + + +board = [[Knight, Nil, Nil ,Knight], + [Nil, Nil, Nil, Knight], + [Knight, Nil, Nil, Nil], + [Nil, Knight, Nil, Nil]] + +board2 = [[Nil, Knight, Nil, Nil], + [Nil, Nil, Nil, Knight], + [Knight, Nil, Nil, Nil], + [Nil, Nil, Knight, Nil]] + diff --git a/exams/photo-skyscraper/index.md b/exams/photo-skyscraper/index.md new file mode 100644 index 0000000..0a8983c --- /dev/null +++ b/exams/photo-skyscraper/index.md @@ -0,0 +1,146 @@ +--- +outline: deep +title: "Exam Task: Photographing Skyscrapers" +subtitle: "From: Exam 1 - 2023" +--- + +# Photographing Skyscrapers + +You are an avid photographer that is obsessed with regular structures and you want to take pictures +of cities that are built on regular grids. It turns out that you are also really into roof tops so +you want to see as many of them in your pictures as possible. Naturally, you wonder from which side +of a given city (North/South/East/West) you should be taking the picture. Luckily a befriended +architect gave you maps of the cities you want to photograph. The maps are very simplified and can +be represented as lists of lists of integers, so for example in Scheme: + +```scheme +; north +(define city + '((3 0 3 7 3) + (2 5 5 1 2) + (6 5 3 3 2) + (3 3 5 4 9) + (3 5 3 9 0))) +; south +``` +Every number represents the height of a building. + +A roof is *visible* if all other roofs between it and the edge of the grid are *smaller* than it. +Only consider roofs in the same row or column. The first roof at the edge of a grid is always +visible. + + +## Racket + +In Racket, write a function `(best-view city)` that outputs the direction with the most roofs +visible, along with the number of roofs visible from that direction. The direction should be one of +four symbols: `'N`, `'S`, `'E`, and `'N`. The result should be a pair of the format +`'(direction . number)`. + +```scheme +(define city + '((3 3 3) + (1 2 3) + (1 2 3))) + +; 'N has 3 roofs, 'S has 5, 'E has 3, and 'W is the best with 7 +> (best-view city) +'(W . 7) +``` + +Your file should be called `task3.rkt` and should `provide` the `best-view` function. +```scheme +#lang racket + +(provide best-view) + +(define (best-view city) + ; Implement me! + ) +``` + +::: details Solution +```scheme +#lang racket +(provide best-view) + +(define (visible-roofs-row row [height 0] [n 0]) + (if (empty? row) + n + (if (< height (car row)) + (visible-roofs-row (cdr row) (car row) (+ n 1)) + (visible-roofs-row (cdr row) height n)))) + +(define (transpose mat) (apply map list mat)) + + +(define (visible-roofs city dir) + (define m + (match dir + ['W city] + ['E (map reverse city)] + ['N (transpose city)] + ['S ((compose (curry map reverse) transpose) city)])) + (apply + (map visible-roofs-row m))) + + +(define (best-view city) + (define views (list (list 'N (visible-roofs city 'N)) + (list 'S (visible-roofs city 'S)) + (list 'E (visible-roofs city 'E)) + (list 'W (visible-roofs city 'W)))) + (define (inner m v) (if (< (cadr m) (cadr v)) v m)) + (define sol (foldl inner (list 'None 0) views)) + (cons (car sol) (cadr sol))) +``` +::: + + + +## Haskell + +In Haskell, write a function `bestView city` that outputs the direction with the most roofs visible, +along with the number of roofs visible from that direction. The direction should be one of four +characters: `'N'`, `'S'`, `'E'`, or `'W'`. The result should be a pair in the format `(direction, +number)`. + +```haskell +city = [[3, 3, 3], + [1, 2, 3], + [1, 2, 3]] + +-- 'N' has 3 roofs, 'S' has 5, 'E' has 3, and 'W' is the best with 7 +bestView city -- ('W', 7) +``` + +Your file should be called `Task4.hs` and should export the `bestView` function. +```haskell +module Task4 (bestView) where + +bestView :: [[Int]] -> (Char, Int) +bestView city = ... -- Implement me! +``` + +::: details Solution +```haskell + module Task4 (bestView) where + +import Data.List + +roofs xss = sum $ inner <$> xss + where + inner xs = length (group $ scanl1 max xs) + +morph 'N' = transpose +morph 'S' = fmap reverse . transpose +morph 'E' = fmap reverse +morph _ = id + +bestView :: [[Int]] -> (Char, Int) +bestView city = + let dirs = "NSEW" + views = roofs . (`morph` city) <$> dirs + opts = zip dirs views + in last $ sortOn snd opts +``` +::: diff --git a/exams/photo-skyscraper/main_en.pdf b/exams/photo-skyscraper/main_en.pdf new file mode 100644 index 0000000000000000000000000000000000000000..682061726e2f45fd690119e36bdc75dbfd01056c GIT binary patch literal 39264 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 V zD30IlJM=#_Biz)HdKPw{w~<(` zzY^5pxN$f}i2YKcyrRF_tck)g+onUCCy#QGA)IJ<11{iGX118;G`)gQ*?~v6(-Md zVqdrv({jN^?p<6zZG~VZiTPkgGqkJe?r`PwbyI^2TW(MA&TgOUWaOI%KGPpEt3w*Q zN!S*@b}G!8q!}RZZNoDY&u9C)pwmS~LT(=vhqCG1t$Cfs#h-?iJ>Nq-8RTVjZye z34V41T}F{PGb^u5)8*vVdz@lS)71KO*W4y}Tf=kW4A8*w=PSp9r`7I+dnyKob%7P{ zZ8Uv9H%LQ1J$|sWFmpYxWz^cGaIgQh>4EVpzhSnvW@x+NuwNwk(Rs;*TR#(^++U>M z05kJh^{#>lg&0}UyZKRCsgWQ#cJsCy({TjTT~K1m`5Qc}0hwfflVyo60T`t@W*|1W z4aOS~{xCywRwu4i4P&#%t1Ne}Au{f6U3*=&m5L2-wy5DgBvf?d8`jct?-j$x!$7;# z?e}{J@5O{iCxdJNZGVmEaTMIf)$Js#o}n4hSbzmey^eKTKJRVzd`BCE@C38%rF5qQ z0x2Nqi6e$#G)XShr@4!2q-IZ8{AO*mzIC62Brn!s+g52rM?m9wrhU>UX^sABNQHAT ztm>X)Xq3~$)ZfeK$msRUG^b>hTv@Gklk=-vaWY7AwqC2v8>$m_3_k9Id9&2rl~JNa z`vf)FtW80)d<}odwZD*T=w<(@X@JjF92_x;r#~?pwJCqzG{!P&MXI|L9;vzdMoGSo~BDmoE0Sf$||Zz zgs$NQgg!*sKnadSD(k5t4D}HZ6|MhAg>L7+G2_6L{yxo;ugeU^L=tJ=n7hw?ChmLU z_whjVneNhtAQhkRLblc*tNdK&f93_$gA)0+0M?`?=o zZ9NRHdybO9@l0`@H<+q;~LeeiRtXPdsmFb?v~;fuITE= z;^?u(PJUtre`)L^aLDvd%B@Y2J?TnIUm0;f!b}j==?z!GYH-&nvt20Pp5jh_lX&cy mdZKg5_9^KX0L*_rS8ocIO!23O^z3wY22}_<5NKdw$o>yn195!- literal 0 HcmV?d00001 diff --git a/exams/photo-skyscraper/task3.reference.rkt b/exams/photo-skyscraper/task3.reference.rkt new file mode 100644 index 0000000..2ead80c --- /dev/null +++ b/exams/photo-skyscraper/task3.reference.rkt @@ -0,0 +1,32 @@ +#lang racket +(provide best-view) + +(define (visible-roofs-row row [height 0] [n 0]) + (if (empty? row) + n + (if (< height (car row)) + (visible-roofs-row (cdr row) (car row) (+ n 1)) + (visible-roofs-row (cdr row) height n)))) + +(define (transpose mat) (apply map list mat)) + + +(define (visible-roofs city dir) + (define m + (match dir + ['W city] + ['E (map reverse city)] + ['N (transpose city)] + ['S ((compose (curry map reverse) transpose) city)])) + (apply + (map visible-roofs-row m))) + + +(define (best-view city) + (define views (list (list 'N (visible-roofs city 'N)) + (list 'S (visible-roofs city 'S)) + (list 'E (visible-roofs city 'E)) + (list 'W (visible-roofs city 'W)))) + (define (inner m v) (if (< (cadr m) (cadr v)) v m)) + (define sol (foldl inner (list 'None 0) views)) + (cons (car sol) (cadr sol))) + diff --git a/exams/photo-skyscraper/task4.reference.hs b/exams/photo-skyscraper/task4.reference.hs new file mode 100644 index 0000000..2a948e2 --- /dev/null +++ b/exams/photo-skyscraper/task4.reference.hs @@ -0,0 +1,19 @@ +module Task4 (bestView) where + +import Data.List + +roofs xss = sum $ inner <$> xss + where + inner xs = length (group $ scanl1 max xs) + +morph 'N' = transpose +morph 'S' = fmap reverse . transpose +morph 'E' = fmap reverse +morph _ = id + +bestView :: [[Int]] -> (Char, Int) +bestView city = + let dirs = "NSEW" + views = roofs . (`morph` city) <$> dirs + opts = zip dirs views + in last $ sortOn snd opts diff --git a/img/building-trees-sequence.svg b/img/building-trees-sequence.svg new file mode 100644 index 0000000..ed58f8e --- /dev/null +++ b/img/building-trees-sequence.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/cheap-flights-graph.svg b/img/cheap-flights-graph.svg new file mode 100644 index 0000000..1e4e38e --- /dev/null +++ b/img/cheap-flights-graph.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/finite-automata-dfa.svg b/img/finite-automata-dfa.svg new file mode 100644 index 0000000..67bde60 --- /dev/null +++ b/img/finite-automata-dfa.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/least-common-ancestor-tree.svg b/img/least-common-ancestor-tree.svg new file mode 100644 index 0000000..ef993ce --- /dev/null +++ b/img/least-common-ancestor-tree.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/n2-knights-max.png b/img/n2-knights-max.png new file mode 100644 index 0000000000000000000000000000000000000000..ccfeb3b1810b40d1c4f717f502188608b2df33f0 GIT binary patch literal 19817 zcmcJ%c|4Tu-^YE-7>s?8B}>LycCw~I$QlWiWLF}DA}Y%yYj)WpqzK7Y*(&>5k~Ks% zBqRw*cJmzPa4o<4`Q7*H`RBP_T`!z8)#-Gc@8k1%f6oYGBOL}>E?NKpgPyLI2>>V* z@;{ae9`XHw+k|g0S2Xm@u<$=W?746N@IX)Nh?(!b*$l~8-h;huGY^DOa{D}THJ?fd z^2#)^blZ;d7jY}+E6hKo>f%tg$yU=~r03nA;wDs**um1>8x)5VA5GAWUqfAaV`^m; zFk8V}Dtu=Bt7>1HROR}G^|_R_qPcY%u@RfVO-cYtZ0e{0!JSy!Fx8bc)|svZ!2Ea{ zldqp&aHTu3QEh9134oPf6LglAmh~Me(zmi!7rWHPY)ES<*CtEqwt^xf=~kxHNN3)i zX~?;Z8k(U1qvLI{9^T&P{R|44)JPkwmo8m;Tjyf_?FQQS&um*P-~4pn-m2PK#X8or zVQK*zgh0|d@tI1Io#^bJkxKXZ&2=B&rSB)_BsvoJvZ1H~e5ITUqd2KJkdYpav&~a6@ztwW_gX!V6-TYFuU`Z*NjN)w z(Q)@a`M!WUoA)@zFiiz;&nVA{#J6Y9x4Gg>Q{u;uW)$kTMS}Roo0^(1;90C(OL1}W zV^qD9fM_%TkBVm=eY&KCs((H*`>5Y~ELLqRp9*Y@r2fhz?dgz#$BA=ybhP?Oy#T+3 zISc=wiHV7~qzbpZD=)(pzr#~AI(L-)+VI@6=|}}DIF^!!!D@J3VkPDz6bv2ibJ9_yi=gB9fIP|gV62~G!OV*S=QQ}siE~Iko&}!K zu%T5ScAAj@T6)(sT^f+O;UIQIRKd#H`Zim3;(m17#Kie|nTS&w&Hx;e>&Gt zvY62mRT$gFZzir@=K|DS4)ZdG*^*usvu>&_-}X?+K>n@eZrmT4ZFj>@iz%bXAUqVDYP?jLp7u!gIyer`8|!Tyt3ku{&CfJJ|i>DCEte;PTLk%70|Zb`-z0CZ%gj;y+Ob{x(ydY1`UDH|?To=v>9ZbJcIE34yh zLv>11=qJuK`jAdDIfR{uc_z6#z?x+xvVNma)Gkw`pEL15O#M6LqMt?@Y@ ztG$y;KR>;^2t1qxWck27qMTGxPk}&CVC6_e2C&K4M+4GDSVmSGRu4b44&vnx3gppo z*{i-Ot%?S1Uib-$`ixuWsI&FHHN$^DJ)QGbE~GnAvwdBR&n zMUnx9`Y*K!3gDY2=4EwZD`kLgO~jC9b>o!~5F(kXs3})^x)QzQquiKhS|g@`^cKe={cF7l2mr}f|hTPcqaQ4j8cQV9-=P4Md{ zDpR}Ju#eMj-Ag6n#y(@Zc>K46>WQpCn{|wIT<8Fs(!NitaU$o|Kv&J)=WYjGN^2>! z4xk8u23ai%cEjD%k;m_yT(m>b-m;VH5)pJWpGXIw=+ zksEvr#3(OiHL8Dqt@)evx88RzOX~2;6!j}zB*Hsqj|e6kuRi%_^bT4=IsAi^16V;9 zxME%)DT4b~Hj)Hbz@g~p`TDimtY_%J>%ieVWA6OBu1T|t;h&x4FQ_d9g!Qf^dX=^m ztyyE#?nPf;U-Kt%xfcb%49fNwM`+XJ#21b3|R=x-IM9N|1m`V8`7NGtz=D>Q9xgo~(An@h4 zm8)gsN^`}*D@7lz{#YW5L360$4F6rf0~n_R2IzXMCNuj3)cn^Vpr&rh0-Ce%4^5j= z;fKgt7)6pzB8=ELh@(c&7+?4GO{F<+$p?R4GwZrs4Ic4F(8_w9V|y6k%0S>GEmZF! z7QkCjbk*^PRKR}2rzm-qB@D1}XeuxhX5oosDheLrzh5K}KCfH|@BCn%@BR^kO(1hZ zA@fgEcA73D2wuzDzd25`_;vl8rb0Xq=pGIvV6zNnHvqf%MLN4GcJNk?A2-j-%V5aF z#B>L9(*kf(Eu#e1K3X6bs(j3NGk@Gn#fR<-8u+;Vm`NJx)G-{kN9!`G-iLrCU4o}E z{?$WyX2L6g4I&Jv=uvnGKaTtS>C;JM!Qu&ZnK~=-LglhD&tnu`i}j2gt=FUCeT4BFgN3<}3hK;VD>F2$BqKJfw%qM*+fWjO6PIPTEDGBloF*#s+cN2ZuMN z1FEFTG%C8+scu@Q(7;h>*GsME<$8^}qF`UH2p8^Ys9qX;pS}s_J>tQ5M?T&Jd|MAV ziFqIyq$(j0C1cX#YxX4pAZLI(R^O5Zh^}i@D1N3%!hje|z(Hc> zi*omdKUt&=>a7$K=@-dni%rri<7&s}u&q{zk%dfc2D4Tv-yICqyCo&gMO>Zv95%_z zwTw?m8m_pM9y_=vB6V6_5^T^W)#nKcqvplw+g81Dgg`*jm@fm!xis>5m_1G18Ki2M z$?vdWs!N2T5(0y7%e9bGN8(bvr4H9&_!T26ZZx2K!{x49L6B!PIJ2;Z$PnK}OUsZJpbaYKNm~OJDtz z81S1~y@JM{V%-g~F*>36U}X6R-TFyeBanj?oT_V^5+UT7S`?W5{^Xf@P{rg4$+wSb zsm|@JY^hFo^-pC?JKr8jl)cCoh5E(wl?8maW@4H?!kP8H=deN0Fw8RynnSFDOMRsT2)! zkW<4iVs$YRryJ5hkM;|&LId!NH&F2)sluGuLXEPnSyUtclzK>ZF9=^EUQMMrE}UtU z=Uh2**WqRMmVw|?lLcnYN=X;Dx;{e8icb$VXIQ82-Y|HnzSew1Eyi{ODq^?(%BvT$;_m_g{P+oamt4n2P|^2ey4WptgAV z8jsf52YCDup$UD03cxO8eg1Lf(4M`nL#iZEET~`OzaOgra9`A{C`((eC$a>=3y`a` zeKHW<9A<0BaU)XoSGotg(_>1XxQ*QIxnGdg`hg1=zwyr`3Ww_I-NqV(wVG&_Lbd{< zeOj&>`HAgs+P`SRpK|8a&}6vn@k`TvTV!NaNso_Ioxj0QKwc24{{!kDWZ)n#9xAyc~r0Z&!?5#h&S07#fD5CjlfUWa7cFT_QUIuvLHt#Z+ zlB*y77l)@)*%^%hWDM9^~j_BYur6Z~oA17-LM%qT4&PZ+X2& z^6@3MzYuK9k9n$cL$KH4Az$QY++qm|-rxB^M6H9#p!ej)EqP&#@5R%->{o_&CsBcA zHK9hIk%}+R!=j%!5@{y|y{nLm5tJTM4~|w(8@K!N{Nb0(-^?c#B1?AZHuai-?&|>r zteTnfvTZN*5p_ovDZ2R2*1`DQ!kur-;i}Wggv+)$7kg_(D#V9=T-joVz5_p7-bO4$ z0r>ki;ogp}8+9$EUx#PXA%I5!tGZt!?e0yuWSTSL?nd(!*8tFUR%Br=$;5u5=k^yi z=F5bA9AE_{@S|nEDbcSDpKZ>R?;SPnq^-HJn*-wynFmea!#Bp(Pg2MEFilyPIdcjA z$TZsP$wYaPp9SMU5p;8B2zwFM zV;?Gux%S5M2Kw;#Q4^+y!rVsQ%wC9=31Um91=ciQiLK5mZ8o9;sQUe4Ke-IgNkRs9 zJ{~%8WZy4q2{SGGH>GC8lc0Wc>N-`%xIyEod_vT<`S2lm5*HZVGCfR@vNC_eDb4ZE zL0RWk#; z^~f_vG>AED56leD6&Cias?zwC_`4_nL`KwCw9G; zlU}$D{E2#ghAK}_nFKdpgo$KR6&6|=Y#JS?=-dyfnAOt-1v;3&q8rPBt?7^HclGds zN_AJ_(9uvpjSfpVJhQ`&D2fY>%Xi-4!;8^?f=oX$aNPou7xaK`T3pAsei@N!Jlyaw zfG35;DH}W9 zJx+`0fgOBTdCZKz=H<&mDgw^%T<5O#WTy}0>?PPqAY12x1B;|MvFr>BP&L$Y$;d%f zB|KMoI`qVZ1w6tro`uYn;AV6R*-N{B!h+-`yR!$bP}EPU5%<*E?Vs$`f;)mK(y%ij z@m`}X0|0M*T=gnij8pg0ppg}sG*Eks623RO7+9EH8W;5eiA&~J>ssVf_fE0cF#xBc zyuw0pqE6gwk)_Rer2Yyilqdu(fgKJ!yH4*fi!LGqJH9I==P0 zGc36zIkEdmEX*oTE%AXb1JhR~Y%Y#G>SryA2&oJSd1Bh?vP2pT(8H{IWo#D>?vuh`5w8%xnVhXCN!K7&C2Dry$#F)uvHKI{#nme3YB&0(cYWl{G4~aApa{Lho}jH>udbWNna$e(Q@#h5$kB>G z;%@d=f2>^&lS9Cr98SHMb9&=?NpHgu&5b%luxtgI8Kb0N4`0b zR-NaMK`q5Jc3y-B;+&29DHUa>a1vJi6?pI6K$lGNJ#@Y4!4-J!>Q~tNu$P;4^HvAL z8F~7!`2k~GY(3$nNZjV4Ma{SXajmBC-Q>agLlQ5TFwc$P!9NJCwHD4t-=6npY8s_P zy$`;Kp<;x4yle3M@q59fbETwGg;aE{`Vf7hodk{LO19ykq{9XKyQ@i; z`r#rY1n%Jwg6g%;A^u;vS(%cGou*D__<_9b*Inp0aN?9L zDyMlM;EnDleGvp6$EZzI3H_YY@{q(vS0CnDI)^q$>2({JN`uS4xikOaFw>CYnYX0g z>qm$%tjfwt!4SR%>Q7NmDaOpE$Ap$i+J73_fJ}8qjTGN2+gl)G!Ug05pT~hbe`1&F zu6y5YuT?wU<`bq7ubqb>z7R=s^3|&tWAVn-!|rMpE)q=-lycl2%EM3i1EIATJqUw~ ze7%Xd4iPumHWf%o<8?*MiMQjW7z_+h>N684f!_uQh6(bDUDD@cW+ScWA0g&hJ%(vZ zVjAQgCboBnQ-2@9#oY}yXw0eP;NKTQ)fSUYg&@=K$RD0KV(xs59gGh%>@s@~q$e7j ztUz+G6Vq^2fXsrbzf5R%-SC*D1iqi8q6143SsL{CU-NH=RvUo%k3Cl8wNF%R_!7aQ zO*zI>5nlFoYhh71A@W zC@*q8R$rIf^(9Tl?c48`ykmUd!n!C022l?_LaZ6TyeGtWq~h7K%iVX%tN|Ycy*@-YR7HvfY>pG*;1GP)oIg!Ag% z3Tf?dRo?2$qz|OaZog4xjJjJytG8rD3FETj3*855g)WBCwx@^T2(N888Piin zmRB8e@@NIm0-&y{9xTn#B1JH4e3(w0#65<~Z3=bxw;M-6F+;4;4n`FfQ%}EIO~2c-iVLpk=V2JDdI=Ejx<7ws@JZ3-hW4<; ztt&_Gk>C|XI4Hk1JL{$Z=6!A|#ymX0@RA*r@*H^=AbyG!HKZsK&WctXpShp?nhF&_ zKmz(VzdpzWyQQ-wyiU<1BtJvqj9qs8T;RAAcAi3B7^S{JvtLCaN>2)FOkOnjOlc0- z=Unl>F9g#C)w8TTiT|I&sY53k9^i2YG0#t8m|}UvqP_w^AOQx8@6?2d#|ww#uS@=q zWXdwTK|_kmaGRQ1gPu@=#ba2^MtZe8Vk# z>0e|7Mq`+mN<069lK|vCh(_<_&2?K{1)s728Nuu!;Ri*AEZX`gSpW18;uOd{WXlR@6RfaA%a+qEji-Hlts@*iVl9)wkl;lYh|&lq|-olFPl@b{in;*8~ zGz6P$mY+X=!Z`4pw?O4K`m}%7y7aQTx&Te+=S@F5qQMI9&ZgnFwHG12lX>UeU%Ybx zZjz>KnjDd|4}OK?*$1L1kQONUtms`L0G)NoA5LA+2ZTwR4kV`nz&2V$hJKOrk|_J* zh_5f$4~wurFuR&&^WD84O)$BbB=WR{de?)9uV_&BS)w&DtP zkLS-$ko7taH`Jc$uYw8+w6ENVw$lQVM2q5q2sm z!yK)1Ip(C?K0kODsOKn?fe{Bduko;DC2;H0(eLYdbjBvO@ScX85kC7~|77e1j?P-A z#N;i$#T@;~pTYN+3s5xMc6T~oOkU`av;za!SN`hrTSxs5v2x#PR`H z-!|~x+(lP<&b2vC@o_mxS#B~faerTKTui9vB4`wZpb=qZQr?fqIn{IZ zDXXBJ-R_)q=4wg#o4o*Agn=F8Yu$(Z>+0(8LL?ZI%9y)vaJkh|ylo0Xj+HR;ewb3L zb>S*$P!elgK1_d$1M}SQeR#|dB>t+)>zPnXmc?M?u>Hv5cfIgRz~sa)oKuC?5%n)^ zuakf`l4#ZRkHbEFsMLSU6bA@Pn(BNm0N)(=g4UL9QA8Niu;4477T*bLsqSI_n%xyv zgel+H?38=9XGSX6C>l)EqMt!zO!6WxXbXVU7A4$=y2BR$6 z_Nw5R7cU!$drLJlV{&!7i8Nr1sOiCStGwerlTm-El9js=N&~RPhj~^2@CfM2PwB>8 zw{T(A()x~B`L3l0V2eKVj!D9euR)Fe)-zT@IYYqg+EX(c(bL!MN_AL%_sC%tF0S*RNb1GYNS!rXE}Alnnt5qAHX{E+`En$>{O(3 z-2`9!0N1AZ@6hcE@}H)W55il$>C1$Q)V_E5@}P>u-{22VdEQ~ya|-LHWcUi26p%eT z0rHhArk96_HIJ8VIVU#!wvAt|I#+TsY#Eo&l0%7)9fSq%7L@3$KrxHm2=7AEo%m(EBrPXP{*P9v1!%HgwJ_sy>^ZR zcVs@Ex%Vxyu>Bjl_D3MlB_4ZfS4nsr?EFAI6V6ULl<(2kgRRuf*VT(0cy#2rzI0XX z6p4_@0x*gQcPTI5Mw-Uuznex*ZaNPGFkjcSDP8QOvqD^Wi@9{$1gSU^Ks{qa%heAF zATF5MlJyZo#wp!5zi$StSmJ*{)S>|!XDyEByn2*v%4zXP?p-int;t1Mp{xHvVG3Vx zo0u7EmGbGG`jMyQgx#H(A1g2E?y7=AVTWBtPF+%S31)sWWCrH-@gzl~z5`qO%rqbw zB|GRO;DW-h9>1|)f=MHO**;r<#WXZ`tr!g%>vqGqH!H*m99qSzcfc4YLFDVdC=JYr^#=;Lx-+3Rm~v6LvotP2 z4kipiy$af_Fanp|av0ZN$e`6X>^RG z^6|(AbyvCY!g(_0Fk||;G7m=RL#`ztNgs^FW)GSp@4*6*ixw7$hO7`bvPfr--MV&J zig^GK2Clz&@#2?1=8Pc{WZ~i2aZV61p#@Dc7^3364szzTR(m`~{dv-ozuM-2eCO|F zVqnQ_pUhwMt-5tpRfL(DnYYEmvkME%Qqt0f2OwmjvQ+)kl4u-0)cLKlfaKa-gx0>a z(82rN-J0hkVN86ZYiq-ai~m?@YyeyK!*2TQ8#!}6wZN?>-%0Dsb7LOLsh0y*e^E+F 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