Variant implementations for day 9
[ou-summer-of-code-2017.git] / 09-resolving-the-bill / interleaving.ipynb
index 22d91be6b054ec5464fae22bdbb0d2b437ba972f..352a5fcf6e7b8596fa08b8a65da8e2b918e6fa26 100644 (file)
@@ -19,7 +19,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "metadata": {
     "collapsed": true
    },
@@ -31,7 +31,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 2,
    "metadata": {
     "collapsed": true
    },
@@ -46,7 +46,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -55,7 +55,7 @@
        "[(0, ''), (1, 'a'), (2, 'aa'), (3, 'aab'), (4, 'aabc'), (5, 'aabcc')]"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 4,
    "metadata": {
     "scrolled": true
    },
        " (5, 5): False}"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 5,
    "metadata": {
     "collapsed": true
    },
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 6,
    "metadata": {
     "collapsed": true
    },
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "aabcc dbbca aadbbbaccc\n",
+      "aabcc dbbca aadbbcbcac\n",
       "aa 0 0 ! ! ! True\n",
       "s2 0 1 ! d a False\n",
       "s2 0 2 ! b a False\n",
       "xx 1 2 a b d False\n",
       "xx 1 3 a b b False\n",
       "xx 1 4 a c b False\n",
-      "xx 1 5 a a b False\n",
+      "xx 1 5 a a c False\n",
       "s1 2 0 a ! a True\n",
       "s2 2 1 a d d True\n",
       "s2 2 2 a b b True\n",
       "s2 2 3 a b b True\n",
-      "xx 2 4 a c b False\n",
-      "xx 2 5 a a a False\n",
+      "s2 2 4 a c c True\n",
+      "xx 2 5 a a b False\n",
       "s1 3 0 b ! d False\n",
       "s1 3 1 b d b True\n",
       "s2 3 2 b b b True\n",
       "s1 3 2 b b b True\n",
-      "s2 3 3 b b b True\n",
-      "s1 3 3 b b b True\n",
-      "xx 3 4 b c a False\n",
+      "xx 3 3 b b c False\n",
+      "s1 3 4 b c b True\n",
       "xx 3 5 b a c False\n",
       "s1 4 0 c ! b False\n",
       "xx 4 1 c d b False\n",
-      "xx 4 2 c b b False\n",
-      "xx 4 3 c b a False\n",
-      "xx 4 4 c c c False\n",
-      "xx 4 5 c a c False\n",
+      "s1 4 2 c b c True\n",
+      "s2 4 3 c b b True\n",
+      "s2 4 4 c c c True\n",
+      "s1 4 4 c c c True\n",
+      "s2 4 5 c a a True\n",
       "s1 5 0 c ! b False\n",
-      "xx 5 1 c d b False\n",
-      "xx 5 2 c b a False\n",
-      "xx 5 3 c b c False\n",
-      "xx 5 4 c c c False\n",
-      "xx 5 5 c a c False\n",
+      "xx 5 1 c d c False\n",
+      "xx 5 2 c b b False\n",
+      "s1 5 3 c b c True\n",
+      "xx 5 4 c c a False\n",
+      "s1 5 5 c a c True\n",
       "T . . . . .\n",
       "T . . . . .\n",
-      "T T T T . .\n",
-      ". T T T . .\n",
-      ". . . . . .\n",
-      ". . . . . .\n"
+      "T T T T T .\n",
+      ". T T . T .\n",
+      ". . T T T T\n",
+      ". . . T . T\n"
      ]
     },
     {
        " (2, 1): (2, 0, 'd', 's2'),\n",
        " (2, 2): (2, 1, 'b', 's2'),\n",
        " (2, 3): (2, 2, 'b', 's2'),\n",
+       " (2, 4): (2, 3, 'c', 's2'),\n",
        " (3, 1): (2, 1, 'b', 's1'),\n",
        " (3, 2): (2, 2, 'b', 's1'),\n",
-       " (3, 3): (2, 3, 'b', 's1')}"
+       " (3, 4): (2, 4, 'b', 's1'),\n",
+       " (4, 2): (3, 2, 'c', 's1'),\n",
+       " (4, 3): (4, 2, 'b', 's2'),\n",
+       " (4, 4): (3, 4, 'c', 's1'),\n",
+       " (4, 5): (4, 4, 'a', 's2'),\n",
+       " (5, 3): (4, 3, 'c', 's1'),\n",
+       " (5, 5): (4, 5, 'c', 's1')}"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "s3 = s3f\n",
+    "s3 = s3t\n",
     "\n",
     "print(s1, s2, s3)\n",
     "\n",