diff --git a/slides/cours_8.md b/slides/cours_8.md index 654c3c55175080ed9aa3d6efd0745f1e82ca0c6b..99b99f39bf98c9d463aa95d6409ac904a54e2084 100644 --- a/slides/cours_8.md +++ b/slides/cours_8.md @@ -176,7 +176,7 @@ bool board[n][n]; ```C // Pour chaque ligne placer la reine sur toutes les colonnes // Et compter les solutions -void nb_sol(board, co, count); +void nbr_solutions(board, coloumn, counter); // Placer la reine à li, co et rendre inaccessible devant void placer_devant(board_ini, board, li, co); ``` @@ -187,16 +187,16 @@ void placer_devant(board_ini, board, li, co); ```C // Calcule le nombre de solutions au problème des <n> reines -nbr_solutions(board, colonne, compteur) +nbr_solutions(board, column, counter) // pour chaque ligne // si la case libre - // si la colonne < n - 1 + // si clumn < n - 1 // créer un nouveau board, poser une reine // et mettre à jour le tableau - // nbr_solutions(board, colonne, compteur) + // nbr_solutions(board, column, counter) // sinon // on a posé la n-ème et on a gagné - // compteur += 1 + // counter += 1 ``` # Le code du problème des 8 reines (3/N) @@ -212,4 +212,109 @@ placer_devant(old_board, board, ligne, colonne) // suivantes sont mises à jour ``` +# Le code du problème des 8 reines (4/N) +## Compris? Alors écrivez le code et postez le! + +. . . + +## Le nombre de solutions + +\footnotesize + +```C +// Calcule le nombre de solutions au problème des <N> reines +void nb_sol(int n, bool board_ini[n][n], int co, int *ptr_cpt) { + for (int li = 0; li < n; li++) { + if (board_ini[li][co]) { + if (co < n - 1) { + bool board[n][n]; // alocation à chaque + nouvelle tentative + prises_devant(n, board_ini, board, li, co); + nb_sol(n, board, co + 1, ptr_cpt); + } else { + *ptr_cpt = (*ptr_cpt) + 1; + } + } + } +} +``` + + +# Le code du problème des 8 reines (5/N) + +\footnotesize + +## Placer devant + +```C +// Retourne une copie du tableau <board> complété avec les positions +// prises sur la droite droite par une reine placée en <board(li,co)> +void prises_devant( + int n, bool board_ini[n][n], bool board[n][n], int li, int co) +{ + copy(n, board_ini, board); + board[li][co] = false; // position de la reine + for (int j = 1; j < n - co; j++) { + // horizontale et diagonales à droite de la reine + if (j <= li) { + board[li - j][co + j] = false; + } + board[li][co + j] = false; + if (li + j < n) { + board[li + j][co + j] = false; + } + } +} +``` + +# Les piles (1/N) + +## Qu'est-ce donc? + +* Structure de données abstraite... + +. . . + +* de type `LIFO` (*Last in first out*). + +](figs/Stack.svg){width=70%} + +## Des exemples de la vraie vie + +. . . + +* Pile d'assiettes, de livres, ... +* Adresses visitées par un navigateur web. +* Les calculatrices du passé (en polonaise inverse). +* Les boutons *undo* de vos éditeurs de texte (aka *u* dans vim). + +# Les piles (2/N) + +## Fonctionnalités + +. . . + +1. Empiler (push), ajouter un élément sur la pile, +2. Dépiler (pop), retirer l'élément du sommet de la pile et le retrouner, +3. Liste vide? (is_empty?) + +. . . + +4. Jeter un oeil (peek), retourner l'élément du sommet de la pile (sans le dépiler), +5. Nombre d'éléments (length). + +## Comment faire les 4,5 à partir de 1 à 3? + +. . . + +4. Dépiler l'élément, le copier, puis l'empiler à nouveau. +5. Dépiler jusqu'à ce que la pile soit vide puis empiler à nouveau. + +. . . + +## Existe en deux goûts + +* Pile avec ou sans limite de capacité (à concurrence de la taille de la +mémoire). diff --git a/slides/figs/Stack.svg b/slides/figs/Stack.svg new file mode 100644 index 0000000000000000000000000000000000000000..49629d25e44c9e81d41487e0a5c803d5b321430b --- /dev/null +++ b/slides/figs/Stack.svg @@ -0,0 +1,723 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="877.8725" + height="238.06184" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="Stack.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0"> + <defs + id="defs4"> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3595" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.8,0,0,0.8,10,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <inkscape:perspective + id="perspective2390" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 526.18109 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective2397" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 526.18109 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.49497475" + inkscape:cx="82.441629" + inkscape:cy="51.169001" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="944" + inkscape:window-height="334" + inkscape:window-x="14" + inkscape:window-y="732" + inkscape:snap-bbox="true" + inkscape:object-paths="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:window-maximized="0"> + <inkscape:grid + type="xygrid" + id="grid2396" + visible="true" + enabled="false" + originx="-10.936806" + originy="-30.969077" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-22.931711,-813.82583)"> + <g + id="g5578" + transform="translate(-23.246306,-18.180276)"> + <path + id="rect2392" + d="M 61.055945,1044.6512 H 196.05595 v 24.6667 H 61.055945 Z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="M 61.055945,1019.9845 H 196.05595 v 24.6667 H 61.055945 Z" + id="path3165" + inkscape:connector-curvature="0" /> + <path + id="path3167" + d="M 61.055945,994.98453 H 196.05595 v 24.66667 H 61.055945 Z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + id="text3169" + y="1039.6512" + x="46.568642" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1039.6512" + x="46.568642" + id="tspan3171" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">1</tspan></text> + <text + id="text3173" + y="1014.6512" + x="46.055946" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1014.6512" + x="46.055946" + id="tspan3175" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">2</tspan></text> + <text + id="text3177" + y="989.52429" + x="45.855751" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="989.52429" + x="45.855751" + id="tspan3179" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">3</tspan></text> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="M 61.055945,969.98453 H 196.05595 v 24.66672 H 61.055945 Z" + id="path2403" + inkscape:connector-curvature="0" /> + <path + id="path2405" + d="M 61.055945,944.98453 H 196.05595 v 24.66672 H 61.055945 Z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="46.178017" + y="964.62195" + id="text2407"><tspan + sodipodi:role="line" + id="tspan2409" + x="46.178017" + y="964.62195" + style="font-size:20px;line-height:1.25">4</tspan><tspan + id="tspan2415" + sodipodi:role="line" + x="46.178017" + y="989.62195" + style="font-size:20px;line-height:1.25"> </tspan></text> + <text + id="text2411" + y="1064.1959" + x="45.885048" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1064.1959" + x="45.885048" + id="tspan2413" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">0</tspan></text> + <path + id="path2544" + d="m 242.8671,1044.6512 h 135 v 24.6667 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 242.8671,1019.9845 h 135 v 24.6667 h -135 z" + id="path2546" + inkscape:connector-curvature="0" /> + <path + id="path2548" + d="m 242.8671,994.98453 h 135 v 24.66667 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + id="text2550" + y="1039.6512" + x="228.37979" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1039.6512" + x="228.37979" + id="tspan2552" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">1</tspan></text> + <text + id="text2554" + y="1014.6512" + x="227.8671" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1014.6512" + x="227.8671" + id="tspan2556" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">2</tspan></text> + <text + id="text2558" + y="989.52429" + x="227.6669" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="989.52429" + x="227.6669" + id="tspan2560" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">3</tspan></text> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 242.8671,969.98453 h 135 v 24.66672 h -135 z" + id="path2562" + inkscape:connector-curvature="0" /> + <path + id="path2564" + d="m 242.86711,944.98453 h 135 v 24.66672 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="227.98917" + y="964.62195" + id="text2566"><tspan + sodipodi:role="line" + id="tspan2568" + x="227.98917" + y="964.62195" + style="font-size:20px;line-height:1.25">4</tspan><tspan + id="tspan2570" + sodipodi:role="line" + x="227.98917" + y="989.62195" + style="font-size:20px;line-height:1.25"> </tspan></text> + <text + id="text2572" + y="1064.1959" + x="227.6962" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1064.1959" + x="227.6962" + id="tspan2574" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">0</tspan></text> + <path + id="path2580" + d="m 424.67822,1044.6512 h 135 v 24.6667 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 424.67822,1019.9845 h 135 v 24.6667 h -135 z" + id="path2582" + inkscape:connector-curvature="0" /> + <path + id="path2584" + d="m 424.67822,994.98453 h 135 v 24.66667 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + id="text2586" + y="1039.6512" + x="410.19092" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1039.6512" + x="410.19092" + id="tspan2588" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">1</tspan></text> + <text + id="text2590" + y="1014.6512" + x="409.67822" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1014.6512" + x="409.67822" + id="tspan2592" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">2</tspan></text> + <text + id="text2594" + y="989.52429" + x="409.47803" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="989.52429" + x="409.47803" + id="tspan2596" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">3</tspan></text> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 424.67822,969.98453 h 135 v 24.66672 h -135 z" + id="path2598" + inkscape:connector-curvature="0" /> + <path + id="path2600" + d="m 424.67822,944.98453 h 135 v 24.66672 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="409.80029" + y="964.62195" + id="text2602"><tspan + sodipodi:role="line" + id="tspan2604" + x="409.80029" + y="964.62195" + style="font-size:20px;line-height:1.25">4</tspan><tspan + id="tspan2606" + sodipodi:role="line" + x="409.80029" + y="989.62195" + style="font-size:20px;line-height:1.25"> </tspan></text> + <text + id="text2608" + y="1064.1959" + x="409.50732" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1064.1959" + x="409.50732" + id="tspan2610" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">0</tspan></text> + <path + id="path2616" + d="m 606.48937,1044.6512 h 135 v 24.6667 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 606.48937,1019.9845 h 135 v 24.6667 h -135 z" + id="path2618" + inkscape:connector-curvature="0" /> + <path + id="path2620" + d="m 606.48937,994.98453 h 135 v 24.66667 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + id="text2622" + y="1039.6512" + x="592.00208" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1039.6512" + x="592.00208" + id="tspan2624" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">1</tspan></text> + <text + id="text2626" + y="1014.6512" + x="591.48938" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1014.6512" + x="591.48938" + id="tspan2628" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">2</tspan></text> + <text + id="text2630" + y="989.52429" + x="591.28918" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="989.52429" + x="591.28918" + id="tspan2632" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">3</tspan></text> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 606.48937,969.98453 h 135 v 24.66672 h -135 z" + id="path2634" + inkscape:connector-curvature="0" /> + <path + id="path2636" + d="m 606.48937,944.98453 h 135 v 24.66672 h -135 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="591.61145" + y="964.62195" + id="text2638"><tspan + sodipodi:role="line" + id="tspan2640" + x="591.61145" + y="964.62195" + style="font-size:20px;line-height:1.25">4</tspan><tspan + id="tspan2642" + sodipodi:role="line" + x="591.61145" + y="989.62195" + style="font-size:20px;line-height:1.25"> </tspan></text> + <text + id="text2644" + y="1064.1959" + x="591.31848" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1064.1959" + x="591.31848" + id="tspan2646" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">0</tspan></text> + <g + transform="translate(769.3005,38.058349)" + id="g2650"> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="m 19,1006.5929 h 135 v 24.6667 H 19 Z" + id="path2652" + inkscape:connector-curvature="0" /> + <path + id="path2654" + d="m 19,981.92618 h 135 v 24.66672 H 19 Z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="M 19,956.92618 H 154 V 981.5929 H 19 Z" + id="path2656" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="4.5126953" + y="1001.5929" + id="text2658"><tspan + sodipodi:role="line" + id="tspan2660" + x="4.5126953" + y="1001.5929" + style="font-size:20px;line-height:1.25">1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="4" + y="976.5929" + id="text2662"><tspan + sodipodi:role="line" + id="tspan2664" + x="4" + y="976.5929" + style="font-size:20px;line-height:1.25">2</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="3.7998047" + y="951.46594" + id="text2666"><tspan + sodipodi:role="line" + id="tspan2668" + x="3.7998047" + y="951.46594" + style="font-size:20px;line-height:1.25">3</tspan></text> + <path + id="path2670" + d="M 19,931.92618 H 154 V 956.5929 H 19 Z" + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" + d="M 19,906.92618 H 154 V 931.5929 H 19 Z" + id="path2672" + inkscape:connector-curvature="0" /> + <text + id="text2674" + y="926.5636" + x="4.1220703" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="926.5636" + x="4.1220703" + id="tspan2676" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">4</tspan><tspan + y="951.5636" + x="4.1220703" + sodipodi:role="line" + id="tspan2678" + style="font-size:20px;line-height:1.25"> </tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="3.8291016" + y="1026.1376" + id="text2680"><tspan + sodipodi:role="line" + id="tspan2682" + x="3.8291016" + y="1026.1376" + style="font-size:20px;line-height:1.25">0</tspan></text> + </g> + <text + id="text2684" + y="1064.1427" + x="303.69717" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1064.1427" + x="303.69717" + id="tspan2686" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">A</tspan></text> + <text + id="text2688" + y="1039.4761" + x="485.30811" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1039.4761" + x="485.30811" + id="tspan2690" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="485.5083" + y="1064.1427" + id="text2763"><tspan + sodipodi:role="line" + id="tspan2765" + x="485.5083" + y="1064.1427" + style="font-size:20px;line-height:1.25">A</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="121.88602" + y="846.32251" + id="text2816"><tspan + sodipodi:role="line" + id="tspan2818" + x="121.88602" + y="846.32251" + style="font-size:20px;line-height:1.25">A</tspan></text> + <g + transform="translate(-110.82003,-12.8571)" + id="g5458"> + <g + id="g5454"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none" + d="m 239.37598,930.5929 v -45" + id="path4887" + sodipodi:nodetypes="cs" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + transform="translate(4.3759766,771.5929)" + id="path5452" + d="m 230,149 5,10 5,-10" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="303.49698" + y="846.32251" + id="text5496"><tspan + sodipodi:role="line" + id="tspan5498" + x="303.49698" + y="846.32251" + style="font-size:20px;line-height:1.25">B</tspan></text> + <g + id="g5500" + transform="translate(70.991133,-12.8571)"> + <g + id="g5502"> + <path + sodipodi:nodetypes="cs" + id="path5504" + d="m 239.37598,930.5929 v -45" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 230,149 5,10 5,-10" + id="path5506" + transform="translate(4.3759766,771.5929)" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /> + </g> + </g> + <text + id="text5508" + y="846.32251" + x="485.30811" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="846.32251" + x="485.30811" + id="tspan5510" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">B</tspan></text> + <g + transform="matrix(1,0,0,-1,252.80224,1803.3287)" + id="g5512"> + <g + id="g5514"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none" + d="m 239.37598,930.5929 v -45" + id="path5516" + sodipodi:nodetypes="cs" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + transform="translate(4.3759766,771.5929)" + id="path5518" + d="m 230,149 5,10 5,-10" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> + </g> + <text + id="text5520" + y="1064.1427" + x="485.5083" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1064.1427" + x="485.5083" + id="tspan5522" + sodipodi:role="line" + style="font-size:20px;line-height:1.25">A</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="667.31946" + y="1064.1427" + id="text5558"><tspan + sodipodi:role="line" + id="tspan5560" + x="667.31946" + y="1064.1427" + style="font-size:20px;line-height:1.25">A</tspan></text> + <g + id="g5566" + transform="matrix(1,0,0,-1,434.61339,1803.3287)"> + <g + id="g5568"> + <path + sodipodi:nodetypes="cs" + id="path5570" + d="m 239.37598,930.5929 v -45" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 230,149 5,10 5,-10" + id="path5572" + transform="translate(4.3759766,771.5929)" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="667.31946" + y="846.32251" + id="text5574"><tspan + sodipodi:role="line" + id="tspan5576" + x="667.31946" + y="846.32251" + style="font-size:20px;line-height:1.25">A</tspan></text> + </g> + </g> +</svg>