Last active
December 3, 2019 02:29
-
-
Save erantapaa/16b1a208e2725e7d9487dbb648c65034 to your computer and use it in GitHub Desktop.
Daily Programmer 2017-09-22 Solution
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
iniital board: | |
1 3 2 5 4 2 2 3 | |
1 12345678 .....6.. 12345678 12345678 ....5... 12345678 1....... 12345678 3 | |
4 12345678 .2...... 1....... 12345678 12345678 12345678 12345678 12345678 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 12345678 12345678 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 12345678 12345678 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule north column 0: | |
1 3 2 5 4 2 2 3 | |
1 ①②③④⑤⑥⑦8 .....6.. 12345678 12345678 ....5... 12345678 1....... 12345678 3 | |
4 12345678 .2...... 1....... 12345678 12345678 12345678 12345678 12345678 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 12345678 12345678 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 12345678 12345678 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 0: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 12345678 12345678 ....5... 12345678 1....... 12345678 3 | |
4 12345678 .2...... 1....... 12345678 12345678 12345678 12345678 12345678 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567⑧ 12345678 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456⑦⑧ 12345678 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule east row 0: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 12345678 12345678 ....5... 12345678 1....... 123456⑦⑧ 3 | |
4 12345678 .2...... 1....... 12345678 12345678 12345678 12345678 12345678 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 12345678 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 12345678 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 12345678 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345678 .2...... 1....... 12345678 12345678 12345678 12345678 12345678 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567⑧ 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456⑦⑧ 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule east row 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 12345678 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345678 .2...... 1....... 12345678 12345678 12345678 123456⑦8 1234567⑧ 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule west row 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 12345678 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345⑥⑦⑧ .2...... 1....... 12345678 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule north column 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567⑧ 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345678 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 12345678 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 12345678 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345678 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 12345678 ..3..... 12345678 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456⑦8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567⑧ 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule east row 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345678 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 12345678 12345678 12345678 .....6.. 123456⑦⑧ ..3..... 1234⑤⑥⑦⑧ 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule west row 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 12345678 ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345678 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567⑧ 12345678 12345678 .....6.. 123456.. ..3..... 1234.... 5 | |
3 12345678 12345678 12345678 12345678 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule north column 3: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234⑤⑥⑦⑧ ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345⑥⑦⑧ 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456⑦⑧ .....6.. 123456.. ..3..... 1234.... 5 | |
3 12345678 12345678 12345678 1234567⑧ 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. 12345678 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 3: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 12345678 12345678 12345678 1234567. 12345678 .......8 12345678 12345678 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. ①②③④⑤⑥⑦8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule east row 3: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 12345678 12345678 12345678 1234567. 12345678 .......8 123456⑦8 1234567⑧ 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule west row 3: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 12345678 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456⑦⑧ 1234567⑧ 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule north column 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456⑦⑧ 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 12345678 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 12345678 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 123456⑦8 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule east row 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 12345678 12345678 .....6.. 12345678 12345678 ..3..... ......7. 123456⑦⑧ 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule west row 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 12345678 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 12345678 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567⑧ 123456⑦8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule north column 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567⑧ 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456⑦8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 12345678 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 12345678 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567. 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 12345678 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 123456⑦8 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 1234567⑧ 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule east row 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567. 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 12345678 12345678 ....5... 12345678 12345678 12345678 12345678 ①②③④⑤⑥⑦8 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 123456.8 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 1234567. 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule west row 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567. 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 1234567⑧ 123456⑦8 ....5... 12345678 12345678 12345678 12345678 .......8 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 123456.8 12345678 ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 1234567. 12345678 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 6: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567. 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 1234567. 123456.8 ....5... 12345678 12345678 12345678 1234567⑧ .......8 1 | |
4 1234567. 1234567. 123456.8 12345678 123456.8 123456.8 123456⑦⑧ ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 1234567. 12345⑥⑦⑧ 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule west row 6: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567. 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 1234567. 123456.8 ....5... 12345678 12345678 12345678 1234567. .......8 1 | |
4 12345⑥⑦. 123456⑦. 123456.⑧ 12345678 123456.8 123456.8 123456.. ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 1234567. 12345... 12345678 3 | |
3 3 2 1 2 2 4 3 | |
after simple rule south column 7: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234567. 1234.... ....5... 1234567. 1....... 123456.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 1234567. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1234567. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 123456.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 1234567. 123456.8 ....5... 12345678 12345678 12345678 1234567. .......8 1 | |
4 12345... 123456.. 123456.. 12345678 123456.8 123456.8 123456.. ..3..... 3 | |
3 123456.. 123456.. 1234567. .......8 ..3..... 1234567. 12345... 123456⑦⑧ 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 12345⑥7. 1234.... ....5... 12345⑥7. 1....... 12345⑥.. 3 | |
4 12345... .2...... 1....... 12345... 123456.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 12345⑥7. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 12345⑥7. 12345678 1234567. 12345678 .......8 123456.8 1234567. 2 | |
2 1234567. 12345⑥.8 .....6.. 12345678 12345678 ..3..... ......7. 123456.. 3 | |
2 1234567. 12345⑥.8 ....5... 12345678 12345678 12345678 1234567. .......8 1 | |
4 12345... 12345⑥.. 123456.. 12345678 123456.8 123456.8 123456.. ..3..... 3 | |
3 123456.. 12345⑥.. 1234567. .......8 ..3..... 1234567. 12345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. 1234⑤.7. 1234.... ....5... 1234⑤.7. 1....... 1234⑤... 3 | |
4 12345... .2...... 1....... 12345... 1234⑤6.. 123456.8 123456.8 1234567. 2 | |
3 .2...... 12345.7. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 12345.7. 12345678 1234567. 1234⑤678 .......8 123456.8 1234567. 2 | |
2 1234567. 12345..8 .....6.. 12345678 1234⑤678 ..3..... ......7. 123456.. 3 | |
2 1234567. 12345..8 ....5... 12345678 1234⑤678 12345678 1234567. .......8 1 | |
4 12345... 12345... 123456.. 12345678 1234⑤6.8 123456.8 123456.. ..3..... 3 | |
3 123456.. 12345... 1234567. .......8 ..3..... 1234567. 12345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. ①234..7. ①234.... ....5... ①234..7. 1....... ①234.... 3 | |
4 12345... .2...... 1....... 12345... 1234.6.. 123456.8 ①23456.8 1234567. 2 | |
3 .2...... 12345.7. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 12345.7. 12345678 1234567. 1234.678 .......8 ①23456.8 1234567. 2 | |
2 1234567. 12345..8 .....6.. 12345678 1234.678 ..3..... ......7. 123456.. 3 | |
2 1234567. 12345..8 ....5... 12345678 1234.678 12345678 ①234567. .......8 1 | |
4 12345... 12345... 123456.. 12345678 1234.6.8 123456.8 ①23456.. ..3..... 3 | |
3 123456.. 12345... 1234567. .......8 ..3..... 1234567. ①2345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 1②345... .2...... 1....... 1②345... 1②34.6.. 1②3456.8 .②3456.8 1②34567. 2 | |
3 .2...... 1②345.7. 12345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1②345.7. 12345678 1234567. 1234.678 .......8 .23456.8 1234567. 2 | |
2 1234567. 1②345..8 .....6.. 12345678 1234.678 ..3..... ......7. 123456.. 3 | |
2 1234567. 1②345..8 ....5... 12345678 1234.678 12345678 .234567. .......8 1 | |
4 12345... 1②345... 123456.. 12345678 1234.6.8 123456.8 .23456.. ..3..... 3 | |
3 123456.. 1②345... 1234567. .......8 ..3..... 1234567. .2345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 ①.345... .2...... 1....... ①.345... ①.34.6.. ①.3456.8 ..3456.8 ①.34567. 2 | |
3 .2...... 1.345.7. ①2345678 123456.. .....6.. 123456.. ..3..... 1234.... 5 | |
3 123456.. 1.345.7. ①2345678 1234567. 1234.678 .......8 .23456.8 1234567. 2 | |
2 1234567. 1.345..8 .....6.. 12345678 1234.678 ..3..... ......7. 123456.. 3 | |
2 1234567. 1.345..8 ....5... 12345678 1234.678 12345678 .234567. .......8 1 | |
4 12345... 1.345... ①23456.. 12345678 1234.6.8 123456.8 .23456.. ..3..... 3 | |
3 123456.. 1.345... ①234567. .......8 ..3..... 1234567. .2345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.6.. ..3456.8 ..3456.8 ..34567. 2 | |
3 .2...... 1.345.7. .②345678 1②3456.. .....6.. 1②3456.. ..3..... 1②34.... 5 | |
3 1②3456.. 1.345.7. .2345678 1234567. 1234.678 .......8 .23456.8 1234567. 2 | |
2 1②34567. 1.345..8 .....6.. 12345678 1234.678 ..3..... ......7. 123456.. 3 | |
2 1②34567. 1.345..8 ....5... 12345678 1234.678 12345678 .234567. .......8 1 | |
4 1②345... 1.345... .23456.. 12345678 1234.6.8 123456.8 .23456.. ..3..... 3 | |
3 1②3456.. 1.345... .234567. .......8 ..3..... 1234567. .2345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.⑥.. ..3456.8 ..3456.8 ..34567. 2 | |
3 .2...... 1.345.7. ..345⑥78 1.345⑥.. .....6.. 1.345⑥.. ..3..... 1.34.... 5 | |
3 1.3456.. 1.345.7. .2345678 1234567. 1234.⑥78 .......8 .23456.8 1234567. 2 | |
2 1.34567. 1.345..8 .....6.. 12345678 1234.⑥78 ..3..... ......7. 123456.. 3 | |
2 1.34567. 1.345..8 ....5... 12345678 1234.⑥78 12345678 .234567. .......8 1 | |
4 1.345... 1.345... .23456.. 12345678 1234.⑥.8 123456.8 .23456.. ..3..... 3 | |
3 1.3456.. 1.345... .234567. .......8 ..3..... 1234567. .2345... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ..3456.8 ..③456.8 ..34567. 2 | |
3 .2...... 1.③45.7. ..③45.78 1.③45... .....6.. 1.③45... ..3..... 1.③4.... 5 | |
3 1.3456.. 1.345.7. .2345678 1234567. 1234..78 .......8 .2③456.8 1234567. 2 | |
2 1.34567. 1.345..8 .....6.. 12345678 1234..78 ..3..... ......7. 123456.. 3 | |
2 1.34567. 1.345..8 ....5... 12345678 1234..78 12345678 .2③4567. .......8 1 | |
4 1.345... 1.345... .23456.. 12345678 1234...8 123456.8 .2③456.. ..3..... 3 | |
3 1.3456.. 1.345... .234567. .......8 ..3..... 1234567. .2③45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ..3456.⑧ ...456.8 ..34567. 2 | |
3 .2...... 1..45.7. ...45.78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234567⑧ 1234567. 1234..7⑧ .......8 .2.456.⑧ 1234567. 2 | |
2 1.34567. 1.345..8 .....6.. 12345678 1234..78 ..3..... ......7. 123456.. 3 | |
2 1.34567. 1.345..8 ....5... 12345678 1234..78 1234567⑧ .2.4567. .......8 1 | |
4 1.345... 1.345... .23456.. 12345678 1234...8 123456.⑧ .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .234567. .......8 ..3..... 1234567. .2.45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .234..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ..3456.. ...456.8 ..34567. 2 | |
3 .2...... 1..45.7. ...45.78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .2345⑥7. 1234567. 1234..7. .......8 .2.456.. 1234567. 2 | |
2 1.345⑥7. 1.345..8 .....6.. 12345⑥78 1234..78 ..3..... ......7. 12345⑥.. 3 | |
2 1.34567. 1.345..8 ....5... 12345678 1234..78 1234567. .2.4567. .......8 1 | |
4 1.345... 1.345... .2345⑥.. 12345678 1234...8 123456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .2345⑥7. .......8 ..3..... 1234567. .2.45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2③4..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ..③456.. ...456.8 ..34567. 2 | |
3 .2...... 1..45.7. ...45.78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .2345.7. 1234567. 1234..7. .......8 .2.456.. 1234567. 2 | |
2 1.③45.7. 1.③45..8 .....6.. 12③45.78 12③4..78 ..3..... ......7. 12③45... 3 | |
2 1.34567. 1.345..8 ....5... 12345678 1234..78 12③4567. .2.4567. .......8 1 | |
4 1.345... 1.345... .2345... 12345678 1234...8 12③456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .2345.7. .......8 ..3..... 12③4567. .2.45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ...456.. ...456.8 ..34567. 2 | |
3 .2...... 1..45.7. ...45.78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .2345.7. 1234567. 1234..7. .......8 .2.456.. 1234567. 2 | |
2 1..45.⑦. 1..45..8 .....6.. 12.45.⑦8 12.4..⑦8 ..3..... ......7. 12.45... 3 | |
2 1.34567. 1.345..8 ....5... 12345678 1234..78 12.4567. .2.456⑦. .......8 1 | |
4 1.345... 1.345... .2345... 12345678 1234...8 12.456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .2345.7. .......8 ..3..... 12.4567. .2.45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ...456.. ...456.8 ..34567. 2 | |
3 .2...... 1..45.7. ...4⑤.78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234⑤.7. 1234567. 1234..7. .......8 .2.456.. 1234567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45..8 12.4...8 ..3..... ......7. 12.45... 3 | |
2 1.34⑤67. 1.34⑤..8 ....5... 1234⑤678 1234..78 12.4⑤67. .2.4⑤6.. .......8 1 | |
4 1.345... 1.345... .234⑤... 12345678 1234...8 12.456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .234⑤.7. .......8 ..3..... 12.4567. .2.45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .234.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ...456.. ...456.8 ..34567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 1234..7. .......8 .2.456.. 1234567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45..8 12.4...8 ..3..... ......7. 12.45... 3 | |
2 1.34.67. 1.34...⑧ ....5... 1234.67⑧ 1234..7⑧ 12.4.67. .2.4.6.. .......8 1 | |
4 1.345... 1.345... .234.... 12345678 1234...8 12.456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .234..7. .......8 ..3..... 12.4567. .2.45... 123456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2③4.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ...456.. ...456.8 ..③4567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 1234..7. .......8 .2.456.. 12③4567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45..8 12.4...8 ..3..... ......7. 12.45... 3 | |
2 1.34.67. 1.34.... ....5... 1234.67. 1234..7. 12.4.67. .2.4.6.. .......8 1 | |
4 1.③45... 1.③45... .2③4.... 12③45678 12③4...8 12.456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .234..7. .......8 ..3..... 12.4567. .2.45... 12③456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..345... .2...... 1....... ..345... ..34.... ...456.. ...456.8 ...4567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 1234..7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45..⑧ 12.4...8 ..3..... ......7. 12.45... 3 | |
2 1.34.67. 1.34.... ....5... 1234.67. 1234..7. 12.4.67. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567⑧ 12.4...8 12.456.. .2.456.. ..3..... 3 | |
3 1.3456.. 1.345... .234..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..345... .2...... 1....... ..345... ..③4.... ...456.. ...456.8 ...4567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12③4..7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45... 12.4...8 ..3..... ......7. 12.45... 3 | |
2 1.34.67. 1.34.... ....5... 1234.67. 12③4..7. 12.4.67. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.4...8 12.456.. .2.456.. ..3..... 3 | |
3 1.③456.. 1.③45... .2③4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3④5... .2...... 1....... ..3④5... ...4.... ...④56.. ...④56.8 ...④567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12.④..7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45... 12.④...8 ..3..... ......7. 12.45... 3 | |
2 1.34.67. 1.34.... ....5... 1234.67. 12.④..7. 12.4.67. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.④...8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 0: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12....7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45... 12.....8 ..3..... ......7. 12.45... 3 | |
2 ①.③④.⑥7. 1.34.... ....5... 1234.67. 12....7. 12.4.67. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12....7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... 1..45..8 .....6.. 12.45... 12.....8 ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6⑦. 12....⑦. 12.4.6⑦. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12....7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... ①..④⑤..8 .....6.. 12.45... 12.....8 ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. ...4..78 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12....7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... .......8 .....6.. 12.45... 12.....⑧ ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. ...④..⑦8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. 12....7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.7. .234..7. 1234567. ①②....7. .......8 .2.456.. 12.4567. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... 1..45.7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345.⑦. .234..⑦. 123456⑦. ......7. .......8 .2.456.. 12.456⑦. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... ①..④⑤.7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... 12.4567. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 3: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ①②.④⑤⑥7. 12.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....56.8 ....567. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. ①②.....8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 6: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. ....⑤⑥.8 ....567. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 7: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....56.. .......8 ....⑤⑥7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... ....⑤6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.6.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.456.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.4567. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.⑥.. .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45⑥.. .2.456.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45⑥7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 6: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.456.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.... .2.4.6.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .②.④⑤6.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.45⑥.. 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... 1234.6.. 12...... 12.4.... .2.4.⑥.. .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 123456.. ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... ①②③④.6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 12345⑥.. ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. 1.34.... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.345... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ①.3④.... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1.③45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 1..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after south column 0: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... 1..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 ①..456.. 1..45... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after south column 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..7. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ①..45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 ...456.. 1..4⑤... .2.4..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after south column 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234..⑦. .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... .②.④..7. .......8 ..3..... 12.45.7. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... .2.4..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... ......7. .......8 ..3..... 12.45.⑦. .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... .②.④..7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.45... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... ......7. .......8 ..3..... 12.45... .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after south column 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... 12.456.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. 12.45... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4⑤... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... ......7. .......8 ..3..... ①②.45... .2.45... 12.456.. 3 | |
3 3 2 1 2 2 4 3 | |
after south column 7: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.3456.. 1..45... .234.... 12345... ......7. .......8 .2.45... ①②.④⑤6.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. ①②.④5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12.④⑤⑥.. 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.345⑥.. 1..45... .234.... 12345... ......7. .......8 .2.45... .....6.. 2 | |
2 1..45... .......8 .....6.. 12.45... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.345... 1..45... .234.... 12345... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4⑤... .......8 .....6.. 12.4⑤... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 ...456.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after unique location column 0: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3.5... .2...... 1....... ..3.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.345... 1..45... .234.... 12345... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 ...④⑤6.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after west row 1: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3.⑤... .2...... 1....... ..③.5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.345... 1..45... .234.... 12345... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 .....6.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..45... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1.③45... 1..45... .234.... 12345... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 .....6.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4⑤... .....6.. 1..45... ..3..... 1..4.... 5 | |
3 1..45... 1..45... .234.... 1234⑤... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 .....6.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 2: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4.... .....6.. ①..④5... ..3..... 1..4.... 5 | |
3 1..45... 1..45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 .....6.. 1..4.... ......7. .......8 ..3..... ...45... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4.... .....6.. ....5... ..3..... 1..4.... 5 | |
3 1..45... 1..45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.4.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.4.... .....6.. ..3..... 3 | |
3 .....6.. 1..4.... ......7. .......8 ..3..... ...4⑤... .2.45... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4.... .....6.. ....5... ..3..... 1..4.... 5 | |
3 1..45... 1..45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12.④.... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12.④.... .....6.. ..3..... 3 | |
3 .....6.. 1..④.... ......7. .......8 ..3..... ...4.... .2.④5... 12...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .2.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4.... .....6.. ....5... ..3..... 1..4.... 5 | |
3 1..45... ①..45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... .2..5... ①2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .234.... .234.... ....5... ......7. 1....... .②.4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4.... .....6.. ....5... ..3..... 1..4.... 5 | |
3 1..45... ...45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... .②..5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23④.... .23④.... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 1..4.... .....6.. ....5... ..3..... 1..④.... 5 | |
3 1..45... ...45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ①..4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1..45... ...45... .234.... 1234.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.4.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1..45... ...45... .234.... 123④.... ......7. .......8 .2.45... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12.④.... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1..45... ...45... .234.... 123..... ......7. .......8 .2.4⑤... .....6.. 2 | |
2 1..4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 4: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1..45... ...45... .234.... 123..... ......7. .......8 .2.4.... .....6.. 2 | |
2 ①..4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..45... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1..④5... ...45... .234.... 123..... ......7. .......8 .2.4.... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .2.4.... .......8 1 | |
4 1..④5... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after unique location row 5: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1...5... ...45... .234.... 123..... ......7. .......8 .2.4.... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... .②.4.... .......8 1 | |
4 1...5... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1...5... ...45... .234.... 123..... ......7. .......8 .2.④.... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1...5... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 1...5... ...45... .②34.... 1②3..... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1...5... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after west row 3: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ①...5... ...4⑤... ..3④.... 1.③..... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1...5... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1...⑤... ...45... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .23..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1....... ...④5... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2③..... .23..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1....... ....5... .2.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... .②3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. 12...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1....... ....5... .②.4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... ..3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. ①2...... 12...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1....... ....5... ...4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... ..3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. .2...... 1②...... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. 12...... 12...... ...4.... .......8 1 | |
4 1....... ....5... ...4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... ..3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. .2...... 1....... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. ①2...... 12...... ...4.... .......8 1 | |
4 1....... ....5... ...4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... ..3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. .2...... 1....... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. .2...... 1②...... ...4.... .......8 1 | |
4 1....... ....5... ...4.... ......7. .......8 12...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
after singleton: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... ..3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. .2...... 1....... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. .2...... 1....... ...4.... .......8 1 | |
4 1....... ....5... ...4.... ......7. .......8 ①2...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 | |
final board: | |
1 3 2 5 4 2 2 3 | |
1 .......8 .....6.. .2...... ..3..... ....5... ......7. 1....... ...4.... 3 | |
4 ..3..... .2...... 1....... ....5... ...4.... .....6.. .......8 ......7. 2 | |
3 .2...... ......7. .......8 ...4.... .....6.. ....5... ..3..... 1....... 5 | |
3 ....5... ...4.... ..3..... 1....... ......7. .......8 .2...... .....6.. 2 | |
2 ...4.... .......8 .....6.. .2...... 1....... ..3..... ......7. ....5... 3 | |
2 ......7. ..3..... ....5... .....6.. .2...... 1....... ...4.... .......8 1 | |
4 1....... ....5... ...4.... ......7. .......8 .2...... .....6.. ..3..... 3 | |
3 .....6.. 1....... ......7. .......8 ..3..... ...4.... ....5... .2...... 3 | |
3 3 2 1 2 2 4 3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
iniital board: | |
4 3 0 3 2 2 | |
0 .2.... 123456 123456 123456 123456 123456 0 | |
0 123456 123456 123456 123456 ...4.. 123456 0 | |
0 123456 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 123456 123456 3 | |
3 123456 123456 123456 123456 123456 123456 0 | |
2 123456 123456 123456 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule north column 0: | |
4 3 0 3 2 2 | |
0 .2.... 123456 123456 123456 123456 123456 0 | |
0 1234⑤⑥ 123456 123456 123456 ...4.. 123456 0 | |
0 12345⑥ 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 123456 123456 3 | |
3 123456 123456 123456 123456 123456 123456 0 | |
2 123456 123456 123456 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule north column 1: | |
4 3 0 3 2 2 | |
0 .2.... 1234⑤⑥ 123456 123456 123456 123456 0 | |
0 1234.. 12345⑥ 123456 123456 ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 123456 123456 3 | |
3 123456 123456 123456 123456 123456 123456 0 | |
2 123456 123456 123456 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule south column 2: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 123456 123456 123456 0 | |
0 1234.. 12345. 123456 123456 ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 123456 123456 3 | |
3 123456 123456 1234⑤6 123456 123456 123456 0 | |
2 123456 123456 12345⑥ 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule north column 3: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234⑤⑥ 123456 123456 0 | |
0 1234.. 12345. 123456 12345⑥ ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 123456 123456 3 | |
3 123456 123456 1234.6 123456 123456 123456 0 | |
2 123456 123456 12345. 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule east row 3: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234.. 123456 123456 0 | |
0 1234.. 12345. 123456 12345. ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 12345⑥ 1234⑤⑥ 3 | |
3 123456 123456 1234.6 123456 123456 123456 0 | |
2 123456 123456 12345. 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule north column 4: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234.. 12345⑥ 123456 0 | |
0 1234.. 12345. 123456 12345. ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 12345. 1234.. 3 | |
3 123456 123456 1234.6 123456 123456 123456 0 | |
2 123456 123456 12345. 123456 123456 123456 0 | |
0 0 2 0 2 0 | |
after simple rule south column 4: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234.. 12345. 123456 0 | |
0 1234.. 12345. 123456 12345. ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 12345. 1234.. 3 | |
3 123456 123456 1234.6 123456 1234⑤6 123456 0 | |
2 123456 123456 12345. 123456 12345⑥ 123456 0 | |
0 0 2 0 2 0 | |
after simple rule west row 4: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234.. 12345. 123456 0 | |
0 1234.. 12345. 123456 12345. ...4.. 123456 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 12345. 1234.. 3 | |
3 1234⑤⑥ 12345⑥ 1234.6 123456 1234.6 123456 0 | |
2 123456 123456 12345. 123456 12345. 123456 0 | |
0 0 2 0 2 0 | |
after simple rule north column 5: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234.. 12345. 12345⑥ 0 | |
0 1234.. 12345. 123456 12345. ...4.. 1234⑤6 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 12345. 1234.. 3 | |
3 1234.. 12345. 1234.6 123456 1234.6 123456 0 | |
2 123456 123456 12345. 123456 12345. 123456 0 | |
0 0 2 0 2 0 | |
after simple rule west row 5: | |
4 3 0 3 2 2 | |
0 .2.... 1234.. 123456 1234.. 12345. 12345. 0 | |
0 1234.. 12345. 123456 12345. ...4.. 1234.6 0 | |
0 12345. 123456 123456 123456 123456 123456 0 | |
0 123456 .2.... 123456 123456 12345. 1234.. 3 | |
3 1234.. 12345. 1234.6 123456 1234.6 123456 0 | |
2 12345⑥ 1234⑤6 12345. 123456 12345. 123456 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1②34.. 1②3456 1②34.. 1②345. 1②345. 0 | |
0 1②34.. 12345. 123456 12345. ...4.. 1234.6 0 | |
0 1②345. 123456 123456 123456 123456 123456 0 | |
0 1②3456 .2.... 123456 123456 12345. 1234.. 3 | |
3 1②34.. 12345. 1234.6 123456 1234.6 123456 0 | |
2 1②345. 1234.6 12345. 123456 12345. 123456 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. 1.3456 1.34.. 1.3④5. 1.345. 0 | |
0 1.3④.. 123④5. 123④56 123④5. ...4.. 123④.6 0 | |
0 1.345. 123456 123456 123456 123④56 123456 0 | |
0 1.3456 .2.... 123456 123456 123④5. 1234.. 3 | |
3 1.34.. 12345. 1234.6 123456 123④.6 123456 0 | |
2 1.345. 1234.6 12345. 123456 123④5. 123456 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. 1.3456 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1②3.5. 123.56 123.5. ...4.. 123..6 0 | |
0 1.345. 1②3456 123456 123456 123.56 123456 0 | |
0 1.3456 .2.... 1②3456 1②3456 1②3.5. 1②34.. 3 | |
3 1.34.. 1②345. 1234.6 123456 123..6 123456 0 | |
2 1.345. 1②34.6 12345. 123456 123.5. 123456 0 | |
0 0 2 0 2 0 | |
after unique location column 0: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. 1.3456 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1.3.5. 123.56 123.5. ...4.. 123..6 0 | |
0 1.345. 1.3456 123456 123456 123.56 123456 0 | |
0 ①.③④⑤6 .2.... 1.3456 1.3456 1.3.5. 1.34.. 3 | |
3 1.34.. 1.345. 1234.6 123456 123..6 123456 0 | |
2 1.345. 1.34.6 12345. 123456 123.5. 123456 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. 1.3456 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1.3.5. 123.56 123.5. ...4.. 123..6 0 | |
0 1.345. 1.3456 123456 123456 123.56 123456 0 | |
0 .....6 .2.... 1.345⑥ 1.345⑥ 1.3.5. 1.34.. 3 | |
3 1.34.. 1.345. 1234.6 123456 123..6 123456 0 | |
2 1.345. 1.34.6 12345. 123456 123.5. 123456 0 | |
0 0 2 0 2 0 | |
after unique location row 0: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. ①.③④⑤6 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1.3.5. 123.56 123.5. ...4.. 123..6 0 | |
0 1.345. 1.3456 123456 123456 123.56 123456 0 | |
0 .....6 .2.... 1.345. 1.345. 1.3.5. 1.34.. 3 | |
3 1.34.. 1.345. 1234.6 123456 123..6 123456 0 | |
2 1.345. 1.34.6 12345. 123456 123.5. 123456 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1.3.5. 123.5⑥ 123.5. ...4.. 123..6 0 | |
0 1.345. 1.3456 12345⑥ 123456 123.56 123456 0 | |
0 .....6 .2.... 1.345. 1.345. 1.3.5. 1.34.. 3 | |
3 1.34.. 1.345. 1234.⑥ 123456 123..6 123456 0 | |
2 1.345. 1.34.6 12345. 123456 123.5. 123456 0 | |
0 0 2 0 2 0 | |
after unique location row 1: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1.3.5. 123.5. 123.5. ...4.. ①②③..6 0 | |
0 1.345. 1.3456 12345. 123456 123.56 123456 0 | |
0 .....6 .2.... 1.345. 1.345. 1.3.5. 1.34.. 3 | |
3 1.34.. 1.345. 1234.. 123456 123..6 123456 0 | |
2 1.345. 1.34.6 12345. 123456 123.5. 123456 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 1.3... 1.3.5. 123.5. 123.5. ...4.. .....6 0 | |
0 1.345. 1.3456 12345. 123456 123.56 12345⑥ 0 | |
0 .....6 .2.... 1.345. 1.345. 1.3.5. 1.34.. 3 | |
3 1.34.. 1.345. 1234.. 123456 123..6 12345⑥ 0 | |
2 1.345. 1.34.6 12345. 123456 123.5. 12345⑥ 0 | |
0 0 2 0 2 0 | |
after north column 0: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 ①.3... 1.3.5. 123.5. 123.5. ...4.. .....6 0 | |
0 ①.③45. 1.3456 12345. 123456 123.56 12345. 0 | |
0 .....6 .2.... 1.345. 1.345. 1.3.5. 1.34.. 3 | |
3 1.③4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1.③45. 1.34.6 12345. 123456 123.5. 12345. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 ..3... 1.③.5. 12③.5. 12③.5. ...4.. .....6 0 | |
0 ...45. 1.3456 12345. 123456 123.56 12345. 0 | |
0 .....6 .2.... 1.345. 1.345. 1.3.5. 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..45. 1.34.6 12345. 123456 123.5. 12345. 0 | |
0 0 2 0 2 0 | |
after south column 2: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 ..3... 1...5. 12..⑤. 12..5. ...4.. .....6 0 | |
0 ...45. 1.3456 1234⑤. 123456 123.56 12345. 0 | |
0 .....6 .2.... 1.34⑤. 1.345. 1.3.5. 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..45. 1.34.6 ①②③④5. 123456 123.5. 12345. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ...45. 1.3456 1234.. 123456 123.56 12345. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3.5. 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..4⑤. 1.34.6 ....5. 1234⑤6 123.⑤. 1234⑤. 0 | |
0 0 2 0 2 0 | |
after unique location column 0: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ...④5. 1.3456 1234.. 123456 123.56 12345. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3.5. 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. 1.3.5. 1.345. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ....5. 1.34⑤6 1234.. 1234⑤6 123.⑤6 1234⑤. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3.5. 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after north column 4: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ①.③.5. 1.345. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3.⑤. 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34⑤. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3... 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 12345. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after unique location column 5: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3... 1.34.. 3 | |
3 1..4.. 1.345. 1234.. 123456 123..6 ①②③④5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... 1...5. 12.... 12..5. ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3... 1.34.. 3 | |
3 1..4.. 1.34⑤. 1234.. 1234⑤6 123..6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after unique location column 1: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ①...5. 12.... 12..5. ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3... 1.34.. 3 | |
3 1..4.. 1.34.. 1234.. 1234.6 123..6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12..⑤. ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. 1.345. 1.3... 1.34.. 3 | |
3 1..4.. 1.34.. 1234.. 1234.6 123..6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after unique location column 3: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 1234.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ①.③④5. 1.3... 1.34.. 3 | |
3 1..4.. 1.34.. 1234.. 1234.6 123..6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after north column 3: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 123④.6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... 1.34.. 3 | |
3 1..4.. 1.34.. 1234.. 1234.6 123..6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after south column 4: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... 1.34.. 3 | |
3 1..4.. 1.34.. 1234.. 1234.6 ①2③..6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after east row 3: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ①.34.. 3 | |
3 1..4.. 1.34.. 1234.. 1234.6 .2...6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after west row 4: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..④.. ①.③4.. ①23④.. ①23④.6 .2...6 ....5. 0 | |
2 1..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.34.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.34.6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ①..4.. 1.34.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3④.. .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3④.6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. 1.3④.6 ....5. 1234.6 123... 1234.. 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 1.34.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3..6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. 1.3..6 ....5. 123④.6 123... 123④.. 0 | |
0 0 2 0 2 0 | |
after unique location column 3: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ①.③4.. ....5. 1.34.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3..6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. 1.3..6 ....5. 123..6 123... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3④.. 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3..6 1234.. 123..6 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. 1.3..6 ....5. 123..6 123... 123... 0 | |
0 0 2 0 2 0 | |
after north column 3: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3..6 1234.. 123..⑥ 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. 1.3..6 ....5. 123..6 123... 123... 0 | |
0 0 2 0 2 0 | |
after west row 5: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3..6 1234.. 123... 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. ①.③..6 ....5. 123..⑥ 123... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3..⑥ 1234.. 123... 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .23..6 .2...6 ....5. 0 | |
2 ...4.. .....6 ....5. 123... 123... 123... 0 | |
0 0 2 0 2 0 | |
after unique location column 3: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 1234.. 123... 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .②③..6 .2...6 ....5. 0 | |
2 ...4.. .....6 ....5. 123... 123... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 1234.. 123... 123..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .23... .....6 .2...⑥ ....5. 0 | |
2 ...4.. .....6 ....5. 123... 123... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 1234.. 123... 1②3..6 1234.. 0 | |
0 .....6 .2.... 1.34.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. .②3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... 1②3... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12③4.. 123... 1.3..6 1234.. 0 | |
0 .....6 .2.... 1.③4.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... 1.3... 123... 0 | |
0 0 2 0 2 0 | |
after unique location column 4: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12.4.. 123... ①.③..6 1234.. 0 | |
0 .....6 .2.... 1..4.. ....5. 1.3... ..34.. 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... 1.3... 123... 0 | |
0 0 2 0 2 0 | |
after south column 4: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12.4.. 123... .....6 1234.. 0 | |
0 .....6 .2.... 1..4.. ....5. 1.③... ..34.. 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ①.3... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12.4.. 123... .....6 1234.. 0 | |
0 .....6 .2.... ①..4.. ....5. 1..... ..34.. 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.3... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12.④.. 123... .....6 1234.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3④.. 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... 123... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... 1.3... .....6 ...4.. ....5. 1.③... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12.... 123... .....6 12③4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... 12③... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ①.3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.3... 12.... 123... .....6 ①2.4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... ①2.... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1.③... 12.... 123... .....6 .2.4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... .2.... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 12.... 12.... ...4.. .....6 0 | |
0 ....5. 1..... ①2.... ①23... .....6 .2.4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... .2.... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 1②.... 12.... ...4.. .....6 0 | |
0 ....5. 1..... .2.... .②3... .....6 .②.4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... .2.... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 1..... ①2.... ...4.. .....6 0 | |
0 ....5. 1..... .2.... ..3... .....6 ...4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 123... ..3... .2.... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 1..... .2.... ...4.. .....6 0 | |
0 ....5. 1..... .2.... ..3... .....6 ...4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 1②3... ..3... .2.... 0 | |
0 0 2 0 2 0 | |
after singleton: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 1..... .2.... ...4.. .....6 0 | |
0 ....5. 1..... .2.... ..3... .....6 ...4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 1.③... ..3... .2.... 0 | |
0 0 2 0 2 0 | |
final board: | |
4 3 0 3 2 2 | |
0 .2.... ..3... .....6 ...4.. ....5. 1..... 0 | |
0 ..3... ....5. 1..... .2.... ...4.. .....6 0 | |
0 ....5. 1..... .2.... ..3... .....6 ...4.. 0 | |
0 .....6 .2.... ...4.. ....5. 1..... ..3... 3 | |
3 1..... ...4.. ..3... .....6 .2.... ....5. 0 | |
2 ...4.. .....6 ....5. 1..... ..3... .2.... 0 | |
0 0 2 0 2 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Board { | |
constructor(size) { | |
this.size = size | |
let all = allDigits(size) | |
this.cells = Array(size*size).fill(all) | |
this.card = Array(size*size).fill(size) | |
this.eliminated = Array(size*size).fill(0) | |
this.changed = 0 | |
this.removed = [] | |
} | |
copy() { | |
let b = new Board(this.size) | |
b.cells = this.cells.slice(0) | |
b.card = this.card.slice(0) | |
b.eliminated = this.eliminated.slice(0) | |
return b | |
} | |
toRowColumn(n) { | |
let r = Math.floor(n / this.size) | |
let c = n % this.size | |
return [r,c] | |
} | |
at(r,c) { | |
return this.cells[r*this.size+c] | |
} | |
atOffset(n) { | |
return this.cells[n] | |
} | |
northOffsets(c) { | |
let offsets = [] | |
for (let r = 0; r < this.size; ++r) { offsets.push(r*this.size+c) } | |
return offsets | |
} | |
southOffsets(c) { | |
let offsets = [] | |
for (let r = this.size-1; r >= 0; --r) { offsets.push(r*this.size+c) } | |
return offsets | |
} | |
eastOffsets(r) { | |
let offsets = [] | |
for (let c = this.size-1; c >= 0; --c) { offsets.push(r*this.size+c) } | |
return offsets | |
} | |
westOffsets(r) { | |
let offsets = [] | |
for (let c = 0; c < this.size; ++c) { offsets.push(r*this.size+c) } | |
return offsets | |
} | |
digitsAtOffset(n) { | |
let bits = this.atOffset(n) | |
let digits = [] | |
for (let d = 1; d <= this.size; ++d) { | |
if (hasDigit(bits, d)) { | |
digits.push(d) | |
} | |
} | |
return digits | |
} | |
digitsAt(r,c) { | |
let bits = this.at(r,c) | |
let digits = [] | |
for (let d = 1; d <= this.size; ++d) { | |
if (hasDigit(bits, d)) { | |
digits.push(d) | |
} | |
} | |
return digits | |
} | |
findSingleton(n) { | |
// return offset of a singleton which has not been visited | |
// or -1 | |
let size = this.size | |
for (; n < size*size; ++n) { | |
if ((this.card[n] == 1) && (!this.eliminated[n])) { | |
return n | |
} | |
} | |
return -1 | |
} | |
wasRemoved(r0,c0,d) { | |
let offset = r0*this.size+c0 | |
for (let pair of this.removed) { | |
if ((pair[0] == offset) && (pair[1] == d)) { | |
return 1 | |
} | |
} | |
return 0 | |
} | |
removeAtOffset(offset,d) { | |
let r = Math.floor(offset / this.size) | |
let c = offset % this.size | |
if (hasDigit(this.cells[offset], d)) { | |
this.cells[offset] = removeDigit(this.cells[offset], d) | |
this.card[offset]-- | |
this.changed = 1 | |
this.removed.push( [offset, d] ) | |
} | |
} | |
removeDigit(r,c,d) { | |
this.removeAtOffset(r*this.size+c, d) | |
} | |
eliminateAtOffset(n, d) { | |
let [r,c] = this.toRowColumn(n) | |
this.eliminate(r,c,d) | |
} | |
eliminate(r0,c0,d) { | |
let size = this.size | |
for (let r = 0; r < size; ++r) { | |
if (r != r0) { this.removeDigit(r, c0, d) } | |
} | |
for (let c = 0; c < size; ++c) { | |
if (c != c0) { this.removeDigit(r0, c, d) } | |
} | |
this.eliminated[r0*this.size+c0] = 1 | |
} | |
assignOffset(n, d0) { | |
for (let d = 1; d <= this.size; ++d) { | |
if (d != d0) { | |
this.removeAtOffset(n, d) | |
} | |
} | |
} | |
} | |
function forDigits(size, bits, f) { | |
for (let d = 1; d <= size; ++d) { | |
if (bits & (1<<(d-1))) { | |
f(d); | |
} | |
} | |
} | |
function toArray(size, bits) { | |
let digits = [] | |
forDigits(size, bits, (d) => digits.push(d)) | |
return digits | |
} | |
function removeDigit(bits, d) { | |
return bits & (~(1<<(d-1))) | |
} | |
function addDigit(bits, d) { | |
return bits | (1<<(d-1)) | |
} | |
function hasDigit(bits, d) { | |
return bits & (1<<(d-1)) | |
} | |
function intersect(b1, b2) { | |
return b1 & b2 | |
} | |
function allDigits(size) { | |
return (1<<size)-1 | |
} | |
function isSingleton(bits) { | |
return bits && ((bits & (bits-1)) == 0) | |
} | |
function notEmpty(bits) { | |
return bits != 0 | |
} | |
function empty(bits) { | |
return bits == 0 | |
} | |
function basic_count(board, offsets, count) { | |
let size = board.size | |
if (count == 1) { | |
board.assignOffset( offsets[0], size ) | |
} else if (count == 2) { | |
board.removeAtOffset( offsets[0], size ) | |
board.removeAtOffset( offsets[1], size-1 ) | |
} else if (count == size) { | |
for (let i = 0; i < offsets.length; ++i) { | |
board.assignOffset( offsets[i], i+1 ) | |
} | |
} else { | |
for (let i = 0; i < count-1; ++i) { | |
for (let d = size - count + 2 + i; d <= size; ++d) { | |
board.removeAtOffset( offsets[i], d ) | |
} | |
} | |
} | |
} | |
function* fill(size, cells) { | |
let result = Array(size).fill(0) | |
let avail = allDigits(size) | |
yield* fill0(size, cells, result, 0, avail) | |
} | |
function* fill0(size, cells, result, k, avail) { | |
if (k >= size) { | |
yield result | |
} else { | |
let ds = intersect(avail, cells[k]) | |
for (let d = 1; d <= size; ++d) { | |
if (hasDigit(ds, d)) { | |
result[k] = d | |
yield* fill0(size, cells, result, k+1, removeDigit(avail, d)) | |
} | |
} | |
} | |
} | |
function leftCount(heights) { | |
let count = 0 | |
let maxh = 0 | |
for (let k = 0; k < heights.length; ++k) { | |
if (heights[k] > maxh) { | |
count++ | |
maxh = heights[k] | |
} | |
} | |
return count | |
} | |
function rightCount(heights) { | |
let count = 0 | |
let maxh = 0 | |
for (let k = heights.length-1; k >= 0; --k) { | |
if (heights[k] > maxh) { | |
count++ | |
maxh = heights[k] | |
} | |
} | |
return count | |
} | |
function analyze(size, cells, predicate) { | |
// return which digits may be removed from each cell | |
let remove = cells.slice(0) | |
for (let r of fill(size,cells)) { | |
if (predicate(r)) { | |
for (let k = 0; k < size; ++k) { | |
remove[k] = removeDigit(remove[k], r[k]) | |
} | |
} | |
} | |
return remove | |
} | |
function analyzeL(size, cells, left) { | |
return analyze(size, cells, (r) => { | |
return (leftCount(r) == left) | |
} | |
) | |
} | |
function singletons(board) { | |
let n = -1 | |
while (1) { | |
n = board.findSingleton(n+1) | |
if (n >= 0) { | |
let digs = board.digitsAtOffset(n) | |
let d = digs[0] | |
board.eliminateAtOffset(n,d) | |
if (board.changed) { | |
return board | |
} | |
} else { | |
break | |
} | |
} | |
return null | |
} | |
// Check if a digit has a unique location in a row/column | |
function unique_location(board, offsets) { | |
let size = board.size | |
let counts = Array(size+1).fill(0) | |
let lastpos = Array(size+1).fill(0) | |
for (let n of offsets) { | |
let bits = board.atOffset(n) | |
for (let d = 1; d <= size; ++d) { | |
if (hasDigit(bits, d)) { | |
lastpos[d] = n | |
counts[d]++ | |
} | |
} | |
} | |
for (let d = 1; d <= size; ++d) { | |
let n = lastpos[d] | |
if ((counts[d] == 1) && (board.card[n] > 1)) { | |
board.assignOffset(n, d); | |
if (board.changed) { | |
return board | |
} | |
} | |
} | |
} | |
function build_once_constraints(size, counts) { | |
let constraints = [] | |
for (let c = 0; c < size; ++c) { | |
if (counts.north[c]) { | |
constraints.push( | |
{ name: "simple rule north column " + c, | |
rule: (board) => basic_count(board, board.northOffsets(c), counts.north[c]) } | |
) | |
} | |
if (counts.south[c]) { | |
constraints.push( | |
{ name: "simple rule south column " + c, | |
rule: (board) => basic_count(board, board.southOffsets(c), counts.south[c]) } | |
) | |
} | |
if (counts.east[c]) { | |
constraints.push( | |
{ name: "simple rule east row " + c, | |
rule: (board) => basic_count(board, board.eastOffsets(c), counts.east[c]) } | |
) | |
} | |
if (counts.west[c]) { | |
constraints.push( | |
{ name: "simple rule west row " + c, | |
rule: (board) => basic_count(board, board.westOffsets(c), counts.west[c]) } | |
) | |
} | |
} | |
return constraints | |
} | |
function build_constraints(size, counts) { | |
let constraints = [] | |
constraints.push( | |
{ name: "singleton", | |
rule: (board) => singletons(board) | |
} | |
) | |
for (let c = 0; c < size; ++c) { | |
constraints.push( | |
{ name: "unique location column " + c, | |
rule: (board) => unique_location(board, board.northOffsets(c)) | |
} | |
) | |
} | |
for (let r = 0; r < size; ++r) { | |
constraints.push( | |
{ name: "unique location row " + r, | |
rule: (board) => unique_location(board, board.eastOffsets(r)) | |
} | |
) | |
} | |
for (let c = 0; c < size; ++c) { | |
if (counts.north[c]) { | |
constraints.push( | |
{ name: `north column ${c}`, | |
rule: (board) => singleSided(board, counts.north[c], board.northOffsets(c)) | |
} | |
) | |
} | |
if (counts.south[c]) { | |
constraints.push( | |
{ name: `south column ${c}`, | |
rule: (board) => singleSided(board, counts.south[c], board.southOffsets(c)) | |
} | |
) | |
} | |
} | |
for (let r = 0; r < size; ++r) { | |
if (counts.east[r]) { | |
constraints.push( | |
{ name: `east row ${r}`, | |
rule: (board) => singleSided(board, counts.east[r], board.eastOffsets(r)) | |
} | |
) | |
} | |
if (counts.west[r]) { | |
constraints.push( | |
{ name: `west row ${r}`, | |
rule: (board) => singleSided(board, counts.west[r], board.westOffsets(r)) | |
} | |
) | |
} | |
} | |
return constraints | |
} | |
function singleSided(board, count, offsets) { | |
let size = board.size | |
let changed = 0 | |
let cells = [] | |
for (let n of offsets) { | |
cells.push( board.cells[n] ) | |
} | |
let remove = analyzeL(size, cells, count) | |
for (let k = 0; k < size; ++k) { | |
for (let d of toArray(size, remove[k])) { | |
board.removeAtOffset(offsets[k], d) | |
changed = 1 | |
} | |
} | |
return changed ? board : null | |
} | |
function displayCell(board, r, c) { | |
let n = r*board.size+c | |
let bits = board.at(r,c) | |
let s = "" | |
for (let d = 1; d <= board.size; ++d) { | |
if (hasDigit(bits, d)) { | |
s += d | |
} else if (board.wasRemoved(r,c,d)) { | |
// s += "\x1b[31m" + d + "\x1b[0m" | |
s += String.fromCodePoint(0x2460 + (d-1)) | |
} else { | |
s += '.' | |
} | |
} | |
return s | |
} | |
function cpad(n, s) { | |
s = ""+s | |
let l = Math.floor((n - s.length + 1)/2) | |
let r = n - s.length - l | |
return ' '.repeat(l) + s + ' '.repeat(r) | |
} | |
function lpad(n, s) { | |
return ' '.repeat(n - s.length) + s | |
} | |
function rpad(n, s) { | |
return s + ' '.repeat(n - s.length) | |
} | |
function displayBoard(board, counts) { | |
let t = " ".repeat(board.size) | |
for (let c of counts.north) { t += " " + cpad(board.size, c) } | |
console.log(t) | |
for (let r = 0; r < board.size; ++r) { | |
let s = cpad(board.size, counts.west[r]) | |
for (let c = 0; c < board.size; ++c) { | |
s += " " + displayCell(board, r, c) | |
} | |
s += " " + counts.east[r] | |
console.log(s) | |
} | |
let u = " ".repeat(board.size) | |
for (let c of counts.south) { u += " " + cpad(board.size, c) } | |
console.log(u) | |
} | |
function scan(constraints, board) { | |
let b = board.copy() | |
for (let c of constraints) { | |
c.rule(b) | |
if (b.changed) { | |
return [b, c] | |
} | |
} | |
return null | |
} | |
function solveBlank(size, cnts) { | |
return solve(size, cnts, Array(size*size).fill(0) ) | |
} | |
function solve(size, cnts, initial) { | |
if (cnts.length != 4*size) { | |
throw "bad count length" | |
} | |
if (initial.length != size*size) { | |
throw `bad initial board size: ${initial.length} != ${size*size}` | |
} | |
let board = new Board(size) | |
let counts = {} | |
counts.north = cnts.slice(0, size) | |
counts.east = cnts.slice(size, 2*size) | |
counts.south = cnts.slice(2*size, 3*size).reverse() | |
counts.west = cnts.slice(3*size,4*size).reverse() | |
for (let n = 0; n < size*size; ++n) { | |
if (initial[n] > 0) { | |
board.assignOffset(n, initial[n]) | |
} | |
} | |
board = board.copy() | |
console.log("iniital board:") | |
displayBoard(board, counts) | |
let once_constraints = build_once_constraints(size, counts) | |
for (let c of once_constraints) { | |
board.changed = 0 | |
c.rule(board) | |
if (board.changed) { | |
console.log(`\nafter ${c.name}:`) | |
displayBoard(board, counts) | |
} | |
board = board.copy() | |
} | |
let constraints = build_constraints(size, counts) | |
board = board.copy() | |
while (1) { | |
let bc = scan(constraints, board) | |
if (bc) { | |
let [b,c] = bc | |
console.log(`\nafter ${c.name}:`) | |
displayBoard(b, counts) | |
board = b | |
} else { | |
break | |
} | |
} | |
console.log("\nfinal board:") | |
displayBoard(board.copy(), counts) | |
return [board, counts] | |
} | |
function toIntArray(s) { | |
return s.trim().split(/\s+/).map( (x) => parseInt(x,10) ) | |
} | |
function challenge1() { | |
solveBlank( 4, [3, 1, 2, 2, 2, 2, 1, 3, 2, 2, 3, 1, 1, 2, 3, 2 ] ) | |
} | |
function challenge2() { | |
solveBlank( 4, [0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 1, 3, 0, 3 ] ) | |
} | |
function test5() { | |
solveBlank( 4, [1, 3, 2, 2, 3, 2, 1, 2, 2, 2, 1, 3, 2, 2, 3, 1 ]) | |
} | |
function test6() { | |
solveBlank( 5, [4, 2, 2, 1, 3, 2, 3, 2, 1, 4, 2, 5, 2, 2, 1, 1, 2, 2, 2, 4 ]) | |
} | |
function test7() { | |
solveBlank( 5, [2, 4, 1, 3, 4, 3, 3, 2, 1, 3, 2, 3, 2, 1, 2, 2, 3, 3, 1, 2]) | |
} | |
function bonus1() { | |
solve(8, | |
toIntArray("1 3 2 5 4 2 2 3 3 2 5 2 3 1 3 3 3 4 2 2 1 2 3 3 3 4 2 2 3 3 4 1"), | |
toIntArray(` | |
0 6 0 0 5 0 1 0 | |
0 2 1 0 0 0 0 0 | |
2 0 0 0 6 0 3 0 | |
0 0 0 0 0 8 0 0 | |
0 0 6 0 0 3 7 0 | |
0 0 5 0 0 0 0 0 | |
0 0 0 0 0 0 0 3 | |
0 0 0 0 3 0 0 0 | |
`) | |
) | |
} | |
function bonus2() { | |
solve(6, | |
toIntArray("4 3 0 3 2 2 0 0 0 3 0 0 0 2 0 2 0 0 2 3 0 0 0 0"), | |
toIntArray(` | |
2 0 0 0 0 0 | |
0 0 0 0 4 0 | |
0 0 0 0 0 0 | |
0 2 0 0 0 0 | |
0 0 0 0 0 0 | |
0 0 0 0 0 0 | |
`) | |
) | |
} | |
function numberRange (start, end) { | |
return new Array(end - start).fill().map((d, i) => i + start); | |
} | |
function rules(size) { | |
for (let v = 1; v <= size; ++v) { | |
let board = new Board(size) | |
let all = allDigits(size) | |
let cells = Array(size).fill(all) | |
let remove = analyzeL(size, cells, v) | |
console.log("count", v, ":", remove.map((bits) => toArray(size, bits)) ) | |
} | |
} | |
// rules(8) | |
bonus1() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment