├── .gitignore ├── README.md ├── project.clj ├── res ├── poker.txt ├── problem008.txt ├── problem011.txt ├── problem013.txt ├── problem018.txt ├── problem022.txt ├── problem042.txt ├── problem059.txt └── problem067.txt ├── src └── project_euler │ ├── problem001.clj │ ├── problem002.clj │ ├── problem003.clj │ ├── problem004.clj │ ├── problem005.clj │ ├── problem006.clj │ ├── problem007.clj │ ├── problem008.clj │ ├── problem009.clj │ ├── problem010.clj │ ├── problem011.clj │ ├── problem012.clj │ ├── problem013.clj │ ├── problem014.clj │ ├── problem015.clj │ ├── problem016.clj │ ├── problem017.clj │ ├── problem018.clj │ ├── problem019.clj │ ├── problem020.clj │ ├── problem021.clj │ ├── problem022.clj │ ├── problem023.clj │ ├── problem024.clj │ ├── problem025.clj │ ├── problem026.clj │ ├── problem027.clj │ ├── problem028.clj │ ├── problem029.clj │ ├── problem030.clj │ ├── problem031.clj │ ├── problem032.clj │ ├── problem033.clj │ ├── problem034.clj │ ├── problem035.clj │ ├── problem036.clj │ ├── problem037.clj │ ├── problem038.clj │ ├── problem039.clj │ ├── problem040.clj │ ├── problem041.clj │ ├── problem042.clj │ ├── problem043.clj │ ├── problem044.clj │ ├── problem045.clj │ ├── problem046.clj │ ├── problem047.clj │ ├── problem048.clj │ ├── problem049.clj │ ├── problem050.clj │ ├── problem051.clj │ ├── problem052.clj │ ├── problem053.clj │ ├── problem054.clj │ ├── problem055.clj │ ├── problem056.clj │ ├── problem057.clj │ ├── problem058.clj │ ├── problem059.clj │ ├── problem060.clj │ ├── problem061.clj │ ├── problem062.clj │ ├── problem063.clj │ ├── problem064.clj │ ├── problem065.clj │ ├── problem066.clj │ ├── problem067.clj │ ├── problem068.clj │ ├── problem069.clj │ ├── problem070.clj │ ├── problem071.clj │ ├── problem072.clj │ ├── problem073.clj │ ├── problem079.clj │ ├── problem092.clj │ ├── problem100.clj │ ├── problem108.clj │ └── problem213.clj ├── target └── stale │ └── dependencies └── test └── project_euler └── test └── core.clj /.gitignore: -------------------------------------------------------------------------------- 1 | /pom.xml 2 | *jar 3 | *.iml 4 | /lib 5 | /classes 6 | /native 7 | /target 8 | /.lein-failures 9 | /checkouts 10 | /.lein-deps-sum 11 | *~ 12 | \#*\# 13 | /.emacs.desktop 14 | /.emacs.desktop.lock 15 | .elc 16 | auto-save-list 17 | tramp 18 | .\#* 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # project-euler 2 | 3 | Clojure solutions for [Project Euler](http://projecteuler.net/) 4 | 5 | # Quick Access 6 | 7 | * [Problem 001](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem001.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-001/) 8 | * [Problem 002](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem002.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-002/) 9 | * [Problem 003](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem003.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-003/) 10 | * [Problem 004](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem004.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-004/) 11 | * [Problem 005](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem005.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-005/) 12 | * [Problem 006](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem006.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-006/) 13 | * [Problem 007](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem007.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-007/) 14 | * [Problem 008](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem008.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-008/) 15 | * [Problem 009](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem009.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-009/) 16 | * [Problem 010](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem010.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-010/) 17 | * [Problem 011](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem011.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-011/) 18 | * [Problem 012](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem012.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-012/) 19 | * [Problem 013](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem013.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-013/) 20 | * [Problem 014](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem014.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-014/) 21 | * [Problem 015](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem015.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-015/) 22 | * [Problem 016](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem016.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-016/) 23 | * [Problem 017](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem017.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-017/) 24 | * [Problem 018](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem018.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-018/) 25 | * [Problem 019](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem019.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-019/) 26 | * [Problem 020](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem020.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-020/) 27 | * [Problem 021](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem021.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-021/) 28 | * [Problem 022](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem022.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-022/) 29 | * [Problem 023](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem023.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-023/) 30 | * [Problem 024](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem024.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-024/) 31 | * [Problem 025](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem025.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-025/) 32 | * [Problem 026](https://github.com/mishadoff/project-euler/blob/master/src/project_euler/problem026.clj) | [Blog](http://mishadoff.com/blog/clojure-euler-problem-026/) 33 | -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- 1 | (defproject project-euler "0.0.1" 2 | :description "Project for solving http://projecteuler.net problems" 3 | :dependencies [[org.clojure/clojure "1.5.1"] 4 | [org.clojure/math.combinatorics "0.0.8"] 5 | [org.clojure/clojure-contrib "1.2.0"]]) 6 | -------------------------------------------------------------------------------- /res/poker.txt: -------------------------------------------------------------------------------- 1 | 8C TS KC 9H 4S 7D 2S 5D 3S AC 2 | 5C AD 5D AC 9C 7C 5H 8D TD KS 3 | 3H 7H 6S KC JS QH TD JC 2D 8S 4 | TH 8H 5C QS TC 9H 4D JC KS JS 5 | 7C 5H KC QH JD AS KH 4C AD 4S 6 | 5H KS 9C 7D 9H 8D 3S 5D 5C AH 7 | 6H 4H 5C 3H 2H 3S QH 5S 6S AS 8 | TD 8C 4H 7C TC KC 4C 3H 7S KS 9 | 7C 9C 6D KD 3H 4C QS QC AC KH 10 | JC 6S 5H 2H 2D KD 9D 7C AS JS 11 | AD QH TH 9D 8H TS 6D 3S AS AC 12 | 2H 4S 5C 5S TC KC JD 6C TS 3C 13 | QD AS 6H JS 2C 3D 9H KC 4H 8S 14 | KD 8S 9S 7C 2S 3S 6D 6S 4H KC 15 | 3C 8C 2D 7D 4D 9S 4S QH 4H JD 16 | 8C KC 7S TC 2D TS 8H QD AC 5C 17 | 3D KH QD 6C 6S AD AS 8H 2H QS 18 | 6S 8D 4C 8S 6C QH TC 6D 7D 9D 19 | 2S 8D 8C 4C TS 9S 9D 9C AC 3D 20 | 3C QS 2S 4H JH 3D 2D TD 8S 9H 21 | 5H QS 8S 6D 3C 8C JD AS 7H 7D 22 | 6H TD 9D AS JH 6C QC 9S KD JC 23 | AH 8S QS 4D TH AC TS 3C 3D 5C 24 | 5S 4D JS 3D 8H 6C TS 3S AD 8C 25 | 6D 7C 5D 5H 3S 5C JC 2H 5S 3D 26 | 5H 6H 2S KS 3D 5D JD 7H JS 8H 27 | KH 4H AS JS QS QC TC 6D 7C KS 28 | 3D QS TS 2H JS 4D AS 9S JC KD 29 | QD 5H 4D 5D KH 7H 3D JS KD 4H 30 | 2C 9H 6H 5C 9D 6C JC 2D TH 9S 31 | 7D 6D AS QD JH 4D JS 7C QS 5C 32 | 3H KH QD AD 8C 8H 3S TH 9D 5S 33 | AH 9S 4D 9D 8S 4H JS 3C TC 8D 34 | 2C KS 5H QD 3S TS 9H AH AD 8S 35 | 5C 7H 5D KD 9H 4D 3D 2D KS AD 36 | KS KC 9S 6D 2C QH 9D 9H TS TC 37 | 9C 6H 5D QH 4D AD 6D QC JS KH 38 | 9S 3H 9D JD 5C 4D 9H AS TC QH 39 | 2C 6D JC 9C 3C AD 9S KH 9D 7D 40 | KC 9C 7C JC JS KD 3H AS 3C 7D 41 | QD KH QS 2C 3S 8S 8H 9H 9C JC 42 | QH 8D 3C KC 4C 4H 6D AD 9H 9D 43 | 3S KS QS 7H KH 7D 5H 5D JD AD 44 | 2H 2C 6H TH TC 7D 8D 4H 8C AS 45 | 4S 2H AC QC 3S 6D TH 4D 4C KH 46 | 4D TC KS AS 7C 3C 6D 2D 9H 6C 47 | 8C TD 5D QS 2C 7H 4C 9C 3H 9H 48 | 5H JH TS 7S TD 6H AD QD 8H 8S 49 | 5S AD 9C 8C 7C 8D 5H 9D 8S 2S 50 | 4H KH KS 9S 2S KC 5S AD 4S 7D 51 | QS 9C QD 6H JS 5D AC 8D 2S AS 52 | KH AC JC 3S 9D 9S 3C 9C 5S JS 53 | AD 3C 3D KS 3S 5C 9C 8C TS 4S 54 | JH 8D 5D 6H KD QS QD 3D 6C KC 55 | 8S JD 6C 3S 8C TC QC 3C QH JS 56 | KC JC 8H 2S 9H 9C JH 8S 8C 9S 57 | 8S 2H QH 4D QC 9D KC AS TH 3C 58 | 8S 6H TH 7C 2H 6S 3C 3H AS 7S 59 | QH 5S JS 4H 5H TS 8H AH AC JC 60 | 9D 8H 2S 4S TC JC 3C 7H 3H 5C 61 | 3D AD 3C 3S 4C QC AS 5D TH 8C 62 | 6S 9D 4C JS KH AH TS JD 8H AD 63 | 4C 6S 9D 7S AC 4D 3D 3S TC JD 64 | AD 7H 6H 4H JH KC TD TS 7D 6S 65 | 8H JH TC 3S 8D 8C 9S 2C 5C 4D 66 | 2C 9D KC QH TH QS JC 9C 4H TS 67 | QS 3C QD 8H KH 4H 8D TD 8S AC 68 | 7C 3C TH 5S 8H 8C 9C JD TC KD 69 | QC TC JD TS 8C 3H 6H KD 7C TD 70 | JH QS KS 9C 6D 6S AS 9H KH 6H 71 | 2H 4D AH 2D JH 6H TD 5D 4H JD 72 | KD 8C 9S JH QD JS 2C QS 5C 7C 73 | 4S TC 7H 8D 2S 6H 7S 9C 7C KC 74 | 8C 5D 7H 4S TD QC 8S JS 4H KS 75 | AD 8S JH 6D TD KD 7C 6C 2D 7D 76 | JC 6H 6S JS 4H QH 9H AH 4C 3C 77 | 6H 5H AS 7C 7S 3D KH KC 5D 5C 78 | JC 3D TD AS 4D 6D 6S QH JD KS 79 | 8C 7S 8S QH 2S JD 5C 7H AH QD 80 | 8S 3C 6H 6C 2C 8D TD 7D 4C 4D 81 | 5D QH KH 7C 2S 7H JS 6D QC QD 82 | AD 6C 6S 7D TH 6H 2H 8H KH 4H 83 | KS JS KD 5D 2D KH 7D 9C 8C 3D 84 | 9C 6D QD 3C KS 3S 7S AH JD 2D 85 | AH QH AS JC 8S 8H 4C KC TH 7D 86 | JC 5H TD 7C 5D KD 4C AD 8H JS 87 | KC 2H AC AH 7D JH KH 5D 7S 6D 88 | 9S 5S 9C 6H 8S TD JD 9H 6C AC 89 | 7D 8S 6D TS KD 7H AC 5S 7C 5D 90 | AH QC JC 4C TC 8C 2H TS 2C 7D 91 | KD KC 6S 3D 7D 2S 8S 3H 5S 5C 92 | 8S 5D 8H 4C 6H KC 3H 7C 5S KD 93 | JH 8C 3D 3C 6C KC TD 7H 7C 4C 94 | JC KC 6H TS QS TD KS 8H 8C 9S 95 | 6C 5S 9C QH 7D AH KS KC 9S 2C 96 | 4D 4S 8H TD 9C 3S 7D 9D AS TH 97 | 6S 7D 3C 6H 5D KD 2C 5C 9D 9C 98 | 2H KC 3D AD 3H QD QS 8D JC 4S 99 | 8C 3H 9C 7C AD 5D JC 9D JS AS 100 | 5D 9H 5C 7H 6S 6C QC JC QD 9S 101 | JC QS JH 2C 6S 9C QC 3D 4S TC 102 | 4H 5S 8D 3D 4D 2S KC 2H JS 2C 103 | TD 3S TH KD 4D 7H JH JS KS AC 104 | 7S 8C 9S 2D 8S 7D 5C AD 9D AS 105 | 8C 7H 2S 6C TH 3H 4C 3S 8H AC 106 | KD 5H JC 8H JD 2D 4H TD JH 5C 107 | 3D AS QH KS 7H JD 8S 5S 6D 5H 108 | 9S 6S TC QS JC 5C 5D 9C TH 8C 109 | 5H 3S JH 9H 2S 2C 6S 7S AS KS 110 | 8C QD JC QS TC QC 4H AC KH 6C 111 | TC 5H 7D JH 4H 2H 8D JC KS 4D 112 | 5S 9C KH KD 9H 5C TS 3D 7D 2D 113 | 5H AS TC 4D 8C 2C TS 9D 3H 8D 114 | 6H 8D 2D 9H JD 6C 4S 5H 5S 6D 115 | AD 9C JC 7D 6H 9S 6D JS 9H 3C 116 | AD JH TC QS 4C 5D 9S 7C 9C AH 117 | KD 6H 2H TH 8S QD KS 9D 9H AS 118 | 4H 8H 8D 5H 6C AH 5S AS AD 8S 119 | QS 5D 4S 2H TD KS 5H AC 3H JC 120 | 9C 7D QD KD AC 6D 5H QH 6H 5S 121 | KC AH QH 2H 7D QS 3H KS 7S JD 122 | 6C 8S 3H 6D KS QD 5D 5C 8H TC 123 | 9H 4D 4S 6S 9D KH QC 4H 6C JD 124 | TD 2D QH 4S 6H JH KD 3C QD 8C 125 | 4S 6H 7C QD 9D AS AH 6S AD 3C 126 | 2C KC TH 6H 8D AH 5C 6D 8S 5D 127 | TD TS 7C AD JC QD 9H 3C KC 7H 128 | 5D 4D 5S 8H 4H 7D 3H JD KD 2D 129 | JH TD 6H QS 4S KD 5C 8S 7D 8H 130 | AC 3D AS 8C TD 7H KH 5D 6C JD 131 | 9D KS 7C 6D QH TC JD KD AS KC 132 | JH 8S 5S 7S 7D AS 2D 3D AD 2H 133 | 2H 5D AS 3C QD KC 6H 9H 9S 2C 134 | 9D 5D TH 4C JH 3H 8D TC 8H 9H 135 | 6H KD 2C TD 2H 6C 9D 2D JS 8C 136 | KD 7S 3C 7C AS QH TS AD 8C 2S 137 | QS 8H 6C JS 4C 9S QC AD TD TS 138 | 2H 7C TS TC 8C 3C 9H 2D 6D JC 139 | TC 2H 8D JH KS 6D 3H TD TH 8H 140 | 9D TD 9H QC 5D 6C 8H 8C KC TS 141 | 2H 8C 3D AH 4D TH TC 7D 8H KC 142 | TS 5C 2D 8C 6S KH AH 5H 6H KC 143 | 5S 5D AH TC 4C JD 8D 6H 8C 6C 144 | KC QD 3D 8H 2D JC 9H 4H AD 2S 145 | TD 6S 7D JS KD 4H QS 2S 3S 8C 146 | 4C 9H JH TS 3S 4H QC 5S 9S 9C 147 | 2C KD 9H JS 9S 3H JC TS 5D AC 148 | AS 2H 5D AD 5H JC 7S TD JS 4C 149 | 2D 4S 8H 3D 7D 2C AD KD 9C TS 150 | 7H QD JH 5H JS AC 3D TH 4C 8H 151 | 6D KH KC QD 5C AD 7C 2D 4H AC 152 | 3D 9D TC 8S QD 2C JC 4H JD AH 153 | 6C TD 5S TC 8S AH 2C 5D AS AC 154 | TH 7S 3D AS 6C 4C 7H 7D 4H AH 155 | 5C 2H KS 6H 7S 4H 5H 3D 3C 7H 156 | 3C 9S AC 7S QH 2H 3D 6S 3S 3H 157 | 2D 3H AS 2C 6H TC JS 6S 9C 6C 158 | QH KD QD 6D AC 6H KH 2C TS 8C 159 | 8H 7D 3S 9H 5D 3H 4S QC 9S 5H 160 | 2D 9D 7H 6H 3C 8S 5H 4D 3S 4S 161 | KD 9S 4S TC 7S QC 3S 8S 2H 7H 162 | TC 3D 8C 3H 6C 2H 6H KS KD 4D 163 | KC 3D 9S 3H JS 4S 8H 2D 6C 8S 164 | 6H QS 6C TC QD 9H 7D 7C 5H 4D 165 | TD 9D 8D 6S 6C TC 5D TS JS 8H 166 | 4H KC JD 9H TC 2C 6S 5H 8H AS 167 | JS 9C 5C 6S 9D JD 8H KC 4C 6D 168 | 4D 8D 8S 6C 7C 6H 7H 8H 5C KC 169 | TC 3D JC 6D KS 9S 6H 7S 9C 2C 170 | 6C 3S KD 5H TS 7D 9H 9S 6H KH 171 | 3D QD 4C 6H TS AC 3S 5C 2H KD 172 | 4C AS JS 9S 7C TS 7H 9H JC KS 173 | 4H 8C JD 3H 6H AD 9S 4S 5S KS 174 | 4C 2C 7D 3D AS 9C 2S QS KC 6C 175 | 8S 5H 3D 2S AC 9D 6S 3S 4D TD 176 | QD TH 7S TS 3D AC 7H 6C 5D QC 177 | TC QD AD 9C QS 5C 8D KD 3D 3C 178 | 9D 8H AS 3S 7C 8S JD 2D 8D KC 179 | 4C TH AC QH JS 8D 7D 7S 9C KH 180 | 9D 8D 4C JH 2C 2S QD KD TS 4H 181 | 4D 6D 5D 2D JH 3S 8S 3H TC KH 182 | AD 4D 2C QS 8C KD JH JD AH 5C 183 | 5C 6C 5H 2H JH 4H KS 7C TC 3H 184 | 3C 4C QC 5D JH 9C QD KH 8D TC 185 | 3H 9C JS 7H QH AS 7C 9H 5H JC 186 | 2D 5S QD 4S 3C KC 6S 6C 5C 4C 187 | 5D KH 2D TS 8S 9C AS 9S 7C 4C 188 | 7C AH 8C 8D 5S KD QH QS JH 2C 189 | 8C 9D AH 2H AC QC 5S 8H 7H 2C 190 | QD 9H 5S QS QC 9C 5H JC TH 4H 191 | 6C 6S 3H 5H 3S 6H KS 8D AC 7S 192 | AC QH 7H 8C 4S KC 6C 3D 3S TC 193 | 9D 3D JS TH AC 5H 3H 8S 3S TC 194 | QD KH JS KS 9S QC 8D AH 3C AC 195 | 5H 6C KH 3S 9S JH 2D QD AS 8C 196 | 6C 4D 7S 7H 5S JC 6S 9H 4H JH 197 | AH 5S 6H 9S AD 3S TH 2H 9D 8C 198 | 4C 8D 9H 7C QC AD 4S 9C KC 5S 199 | 9D 6H 4D TC 4C JH 2S 5D 3S AS 200 | 2H 6C 7C KH 5C AD QS TH JD 8S 201 | 3S 4S 7S AH AS KC JS 2S AD TH 202 | JS KC 2S 7D 8C 5C 9C TS 5H 9D 203 | 7S 9S 4D TD JH JS KH 6H 5D 2C 204 | JD JS JC TH 2D 3D QD 8C AC 5H 205 | 7S KH 5S 9D 5D TD 4S 6H 3C 2D 206 | 4S 5D AC 8D 4D 7C AD AS AH 9C 207 | 6S TH TS KS 2C QC AH AS 3C 4S 208 | 2H 8C 3S JC 5C 7C 3H 3C KH JH 209 | 7S 3H JC 5S 6H 4C 2S 4D KC 7H 210 | 4D 7C 4H 9S 8S 6S AD TC 6C JC 211 | KH QS 3S TC 4C 8H 8S AC 3C TS 212 | QD QS TH 3C TS 7H 7D AH TD JC 213 | TD JD QC 4D 9S 7S TS AD 7D AC 214 | AH 7H 4S 6D 7C 2H 9D KS JC TD 215 | 7C AH JD 4H 6D QS TS 2H 2C 5C 216 | TC KC 8C 9S 4C JS 3C JC 6S AH 217 | AS 7D QC 3D 5S JC JD 9D TD KH 218 | TH 3C 2S 6H AH AC 5H 5C 7S 8H 219 | QC 2D AC QD 2S 3S JD QS 6S 8H 220 | KC 4H 3C 9D JS 6H 3S 8S AS 8C 221 | 7H KC 7D JD 2H JC QH 5S 3H QS 222 | 9H TD 3S 8H 7S AC 5C 6C AH 7C 223 | 8D 9H AH JD TD QS 7D 3S 9C 8S 224 | AH QH 3C JD KC 4S 5S 5D TD KS 225 | 9H 7H 6S JH TH 4C 7C AD 5C 2D 226 | 7C KD 5S TC 9D 6S 6C 5D 2S TH 227 | KC 9H 8D 5H 7H 4H QC 3D 7C AS 228 | 6S 8S QC TD 4S 5C TH QS QD 2S 229 | 8S 5H TH QC 9H 6S KC 7D 7C 5C 230 | 7H KD AH 4D KH 5C 4S 2D KC QH 231 | 6S 2C TD JC AS 4D 6C 8C 4H 5S 232 | JC TC JD 5S 6S 8D AS 9D AD 3S 233 | 6D 6H 5D 5S TC 3D 7D QS 9D QD 234 | 4S 6C 8S 3S 7S AD KS 2D 7D 7C 235 | KC QH JC AC QD 5D 8D QS 7H 7D 236 | JS AH 8S 5H 3D TD 3H 4S 6C JH 237 | 4S QS 7D AS 9H JS KS 6D TC 5C 238 | 2D 5C 6H TC 4D QH 3D 9H 8S 6C 239 | 6D 7H TC TH 5S JD 5C 9C KS KD 240 | 8D TD QH 6S 4S 6C 8S KC 5C TC 241 | 5S 3D KS AC 4S 7D QD 4C TH 2S 242 | TS 8H 9S 6S 7S QH 3C AH 7H 8C 243 | 4C 8C TS JS QC 3D 7D 5D 7S JH 244 | 8S 7S 9D QC AC 7C 6D 2H JH KC 245 | JS KD 3C 6S 4S 7C AH QC KS 5H 246 | KS 6S 4H JD QS TC 8H KC 6H AS 247 | KH 7C TC 6S TD JC 5C 7D AH 3S 248 | 3H 4C 4H TC TH 6S 7H 6D 9C QH 249 | 7D 5H 4S 8C JS 4D 3D 8S QH KC 250 | 3H 6S AD 7H 3S QC 8S 4S 7S JS 251 | 3S JD KH TH 6H QS 9C 6C 2D QD 252 | 4S QH 4D 5H KC 7D 6D 8D TH 5S 253 | TD AD 6S 7H KD KH 9H 5S KC JC 254 | 3H QC AS TS 4S QD KS 9C 7S KC 255 | TS 6S QC 6C TH TC 9D 5C 5D KD 256 | JS 3S 4H KD 4C QD 6D 9S JC 9D 257 | 8S JS 6D 4H JH 6H 6S 6C KS KH 258 | AC 7D 5D TC 9S KH 6S QD 6H AS 259 | AS 7H 6D QH 8D TH 2S KH 5C 5H 260 | 4C 7C 3D QC TC 4S KH 8C 2D JS 261 | 6H 5D 7S 5H 9C 9H JH 8S TH 7H 262 | AS JS 2S QD KH 8H 4S AC 8D 8S 263 | 3H 4C TD KD 8C JC 5C QS 2D JD 264 | TS 7D 5D 6C 2C QS 2H 3C AH KS 265 | 4S 7C 9C 7D JH 6C 5C 8H 9D QD 266 | 2S TD 7S 6D 9C 9S QS KH QH 5C 267 | JC 6S 9C QH JH 8D 7S JS KH 2H 268 | 8D 5H TH KC 4D 4S 3S 6S 3D QS 269 | 2D JD 4C TD 7C 6D TH 7S JC AH 270 | QS 7S 4C TH 9D TS AD 4D 3H 6H 271 | 2D 3H 7D JD 3D AS 2S 9C QC 8S 272 | 4H 9H 9C 2C 7S JH KD 5C 5D 6H 273 | TC 9H 8H JC 3C 9S 8D KS AD KC 274 | TS 5H JD QS QH QC 8D 5D KH AH 275 | 5D AS 8S 6S 4C AH QC QD TH 7H 276 | 3H 4H 7D 6S 4S 9H AS 8H JS 9D 277 | JD 8C 2C 9D 7D 5H 5S 9S JC KD 278 | KD 9C 4S QD AH 7C AD 9D AC TD 279 | 6S 4H 4S 9C 8D KS TC 9D JH 7C 280 | 5S JC 5H 4S QH AC 2C JS 2S 9S 281 | 8C 5H AS QD AD 5C 7D 8S QC TD 282 | JC 4C 8D 5C KH QS 4D 6H 2H 2C 283 | TH 4S 2D KC 3H QD AC 7H AD 9D 284 | KH QD AS 8H TH KC 8D 7S QH 8C 285 | JC 6C 7D 8C KH AD QS 2H 6S 2D 286 | JC KH 2D 7D JS QC 5H 4C 5D AD 287 | TS 3S AD 4S TD 2D TH 6S 9H JH 288 | 9H 2D QS 2C 4S 3D KH AS AC 9D 289 | KH 6S 8H 4S KD 7D 9D TS QD QC 290 | JH 5H AH KS AS AD JC QC 5S KH 291 | 5D 7D 6D KS KD 3D 7C 4D JD 3S 292 | AC JS 8D 5H 9C 3H 4H 4D TS 2C 293 | 6H KS KH 9D 7C 2S 6S 8S 2H 3D 294 | 6H AC JS 7S 3S TD 8H 3H 4H TH 295 | 9H TC QC KC 5C KS 6H 4H AC 8S 296 | TC 7D QH 4S JC TS 6D 6C AC KH 297 | QH 7D 7C JH QS QD TH 3H 5D KS 298 | 3D 5S 8D JS 4C 2C KS 7H 9C 4H 299 | 5H 8S 4H TD 2C 3S QD QC 3H KC 300 | QC JS KD 9C AD 5S 9D 7D 7H TS 301 | 8C JC KH 7C 7S 6C TS 2C QD TH 302 | 5S 9D TH 3C 7S QH 8S 9C 2H 5H 303 | 5D 9H 6H 2S JS KH 3H 7C 2H 5S 304 | JD 5D 5S 2C TC 2S 6S 6C 3C 8S 305 | 4D KH 8H 4H 2D KS 3H 5C 2S 9H 306 | 3S 2D TD 7H 8S 6H JD KC 9C 8D 307 | 6S QD JH 7C 9H 5H 8S 8H TH TD 308 | QS 7S TD 7D TS JC KD 7C 3C 2C 309 | 3C JD 8S 4H 2D 2S TD AS 4D AC 310 | AH KS 6C 4C 4S 7D 8C 9H 6H AS 311 | 5S 3C 9S 2C QS KD 4D 4S AC 5D 312 | 2D TS 2C JS KH QH 5D 8C AS KC 313 | KD 3H 6C TH 8S 7S KH 6H 9S AC 314 | 6H 7S 6C QS AH 2S 2H 4H 5D 5H 315 | 5H JC QD 2C 2S JD AS QC 6S 7D 316 | 6C TC AS KD 8H 9D 2C 7D JH 9S 317 | 2H 4C 6C AH 8S TD 3H TH 7C TS 318 | KD 4S TS 6C QH 8D 9D 9C AH 7D 319 | 6D JS 5C QD QC 9C 5D 8C 2H KD 320 | 3C QH JH AD 6S AH KC 8S 6D 6H 321 | 3D 7C 4C 7S 5S 3S 6S 5H JC 3C 322 | QH 7C 5H 3C 3S 8C TS 4C KD 9C 323 | QD 3S 7S 5H 7H QH JC 7C 8C KD 324 | 3C KD KH 2S 4C TS AC 6S 2C 7C 325 | 2C KH 3C 4C 6H 4D 5H 5S 7S QD 326 | 4D 7C 8S QD TS 9D KS 6H KD 3C 327 | QS 4D TS 7S 4C 3H QD 8D 9S TC 328 | TS QH AC 6S 3C 9H 9D QS 8S 6H 329 | 3S 7S 5D 4S JS 2D 6C QH 6S TH 330 | 4C 4H AS JS 5D 3D TS 9C AC 8S 331 | 6S 9C 7C 3S 5C QS AD AS 6H 3C 332 | 9S 8C 7H 3H 6S 7C AS 9H JD KH 333 | 3D 3H 7S 4D 6C 7C AC 2H 9C TH 334 | 4H 5S 3H AC TC TH 9C 9H 9S 8D 335 | 8D 9H 5H 4D 6C 2H QD 6S 5D 3S 336 | 4C 5C JD QS 4D 3H TH AC QH 8C 337 | QC 5S 3C 7H AD 4C KS 4H JD 6D 338 | QS AH 3H KS 9H 2S JS JH 5H 2H 339 | 2H 5S TH 6S TS 3S KS 3C 5H JS 340 | 2D 9S 7H 3D KC JH 6D 7D JS TD 341 | AC JS 8H 2C 8C JH JC 2D TH 7S 342 | 5D 9S 8H 2H 3D TC AH JC KD 9C 343 | 9D QD JC 2H 6D KH TS 9S QH TH 344 | 2C 8D 4S JD 5H 3H TH TC 9C KC 345 | AS 3D 9H 7D 4D TH KH 2H 7S 3H 346 | 4H 7S KS 2S JS TS 8S 2H QD 8D 347 | 5S 6H JH KS 8H 2S QC AC 6S 3S 348 | JC AS AD QS 8H 6C KH 4C 4D QD 349 | 2S 3D TS TD 9S KS 6S QS 5C 8D 350 | 3C 6D 4S QC KC JH QD TH KH AD 351 | 9H AH 4D KS 2S 8D JH JC 7C QS 352 | 2D 6C TH 3C 8H QD QH 2S 3S KS 353 | 6H 5D 9S 4C TS TD JS QD 9D JD 354 | 5H 8H KH 8S KS 7C TD AD 4S KD 355 | 2C 7C JC 5S AS 6C 7D 8S 5H 9C 356 | 6S QD 9S TS KH QS 5S QH 3C KC 357 | 7D 3H 3C KD 5C AS JH 7H 6H JD 358 | 9D 5C 9H KC 8H KS 4S AD 4D 2S 359 | 3S JD QD 8D 2S 7C 5S 6S 5H TS 360 | 6D 9S KC TD 3S 6H QD JD 5C 8D 361 | 5H 9D TS KD 8D 6H TD QC 4C 7D 362 | 6D 4S JD 9D AH 9S AS TD 9H QD 363 | 2D 5S 2H 9C 6H 9S TD QC 7D TC 364 | 3S 2H KS TS 2C 9C 8S JS 9D 7D 365 | 3C KC 6D 5D 6C 6H 8S AS 7S QS 366 | JH 9S 2H 8D 4C 8H 9H AD TH KH 367 | QC AS 2S JS 5C 6H KD 3H 7H 2C 368 | QD 8H 2S 8D 3S 6D AH 2C TC 5C 369 | JD JS TS 8S 3H 5D TD KC JC 6H 370 | 6S QS TC 3H 5D AH JC 7C 7D 4H 371 | 7C 5D 8H 9C 2H 9H JH KH 5S 2C 372 | 9C 7H 6S TH 3S QC QD 4C AC JD 373 | 2H 5D 9S 7D KC 3S QS 2D AS KH 374 | 2S 4S 2H 7D 5C TD TH QH 9S 4D 375 | 6D 3S TS 6H 4H KS 9D 8H 5S 2D 376 | 9H KS 4H 3S 5C 5D KH 6H 6S JS 377 | KC AS 8C 4C JC KH QC TH QD AH 378 | 6S KH 9S 2C 5H TC 3C 7H JC 4D 379 | JD 4S 6S 5S 8D 7H 7S 4D 4C 2H 380 | 7H 9H 5D KH 9C 7C TS TC 7S 5H 381 | 4C 8D QC TS 4S 9H 3D AD JS 7C 382 | 8C QS 5C 5D 3H JS AH KC 4S 9D 383 | TS JD 8S QS TH JH KH 2D QD JS 384 | JD QC 5D 6S 9H 3S 2C 8H 9S TS 385 | 2S 4C AD 7H JC 5C 2D 6D 4H 3D 386 | 7S JS 2C 4H 8C AD QD 9C 3S TD 387 | JD TS 4C 6H 9H 7D QD 6D 3C AS 388 | AS 7C 4C 6S 5D 5S 5C JS QC 4S 389 | KD 6S 9S 7C 3C 5S 7D JH QD JS 390 | 4S 7S JH 2C 8S 5D 7H 3D QH AD 391 | TD 6H 2H 8D 4H 2D 7C AD KH 5D 392 | TS 3S 5H 2C QD AH 2S 5C KH TD 393 | KC 4D 8C 5D AS 6C 2H 2S 9H 7C 394 | KD JS QC TS QS KH JH 2C 5D AD 395 | 3S 5H KC 6C 9H 3H 2H AD 7D 7S 396 | 7S JS JH KD 8S 7D 2S 9H 7C 2H 397 | 9H 2D 8D QC 6S AD AS 8H 5H 6C 398 | 2S 7H 6C 6D 7D 8C 5D 9D JC 3C 399 | 7C 9C 7H JD 2H KD 3S KH AD 4S 400 | QH AS 9H 4D JD KS KD TS KH 5H 401 | 4C 8H 5S 3S 3D 7D TD AD 7S KC 402 | JS 8S 5S JC 8H TH 9C 4D 5D KC 403 | 7C 5S 9C QD 2C QH JS 5H 8D KH 404 | TD 2S KS 3D AD KC 7S TC 3C 5D 405 | 4C 2S AD QS 6C 9S QD TH QH 5C 406 | 8C AD QS 2D 2S KC JD KS 6C JC 407 | 8D 4D JS 2H 5D QD 7S 7D QH TS 408 | 6S 7H 3S 8C 8S 9D QS 8H 6C 9S 409 | 4S TC 2S 5C QD 4D QS 6D TH 6S 410 | 3S 5C 9D 6H 8D 4C 7D TC 7C TD 411 | AH 6S AS 7H 5S KD 3H 5H AC 4C 412 | 8D 8S AH KS QS 2C AD 6H 7D 5D 413 | 6H 9H 9S 2H QS 8S 9C 5D 2D KD 414 | TS QC 5S JH 7D 7S TH 9S 9H AC 415 | 7H 3H 6S KC 4D 6D 5C 4S QD TS 416 | TD 2S 7C QD 3H JH 9D 4H 7S 7H 417 | KS 3D 4H 5H TC 2S AS 2D 6D 7D 418 | 8H 3C 7H TD 3H AD KC TH 9C KH 419 | TC 4C 2C 9S 9D 9C 5C 2H JD 3C 420 | 3H AC TS 5D AD 8D 6H QC 6S 8C 421 | 2S TS 3S JD 7H 8S QH 4C 5S 8D 422 | AC 4S 6C 3C KH 3D 7C 2D 8S 2H 423 | 4H 6C 8S TH 2H 4S 8H 9S 3H 7S 424 | 7C 4C 9C 2C 5C AS 5D KD 4D QH 425 | 9H 4H TS AS 7D 8D 5D 9S 8C 2H 426 | QC KD AC AD 2H 7S AS 3S 2D 9S 427 | 2H QC 8H TC 6D QD QS 5D KH 3C 428 | TH JD QS 4C 2S 5S AD 7H 3S AS 429 | 7H JS 3D 6C 3S 6D AS 9S AC QS 430 | 9C TS AS 8C TC 8S 6H 9D 8D 6C 431 | 4D JD 9C KC 7C 6D KS 3S 8C AS 432 | 3H 6S TC 8D TS 3S KC 9S 7C AS 433 | 8C QC 4H 4S 8S 6C 3S TC AH AC 434 | 4D 7D 5C AS 2H 6S TS QC AD TC 435 | QD QC 8S 4S TH 3D AH TS JH 4H 436 | 5C 2D 9S 2C 3H 3C 9D QD QH 7D 437 | KC 9H 6C KD 7S 3C 4D AS TC 2D 438 | 3D JS 4D 9D KS 7D TH QC 3H 3C 439 | 8D 5S 2H 9D 3H 8C 4C 4H 3C TH 440 | JC TH 4S 6S JD 2D 4D 6C 3D 4C 441 | TS 3S 2D 4H AC 2C 6S 2H JH 6H 442 | TD 8S AD TC AH AC JH 9S 6S 7S 443 | 6C KC 4S JD 8D 9H 5S 7H QH AH 444 | KD 8D TS JH 5C 5H 3H AD AS JS 445 | 2D 4H 3D 6C 8C 7S AD 5D 5C 8S 446 | TD 5D 7S 9C 4S 5H 6C 8C 4C 8S 447 | JS QH 9C AS 5C QS JC 3D QC 7C 448 | JC 9C KH JH QS QC 2C TS 3D AD 449 | 5D JH AC 5C 9S TS 4C JD 8C KS 450 | KC AS 2D KH 9H 2C 5S 4D 3D 6H 451 | TH AH 2D 8S JC 3D 8C QH 7S 3S 452 | 8H QD 4H JC AS KH KS 3C 9S 6D 453 | 9S QH 7D 9C 4S AC 7H KH 4D KD 454 | AH AD TH 6D 9C 9S KD KS QH 4H 455 | QD 6H 9C 7C QS 6D 6S 9D 5S JH 456 | AH 8D 5H QD 2H JC KS 4H KH 5S 457 | 5C 2S JS 8D 9C 8C 3D AS KC AH 458 | JD 9S 2H QS 8H 5S 8C TH 5C 4C 459 | QC QS 8C 2S 2C 3S 9C 4C KS KH 460 | 2D 5D 8S AH AD TD 2C JS KS 8C 461 | TC 5S 5H 8H QC 9H 6H JD 4H 9S 462 | 3C JH 4H 9H AH 4S 2H 4C 8D AC 463 | 8S TH 4D 7D 6D QD QS 7S TC 7C 464 | KH 6D 2D JD 5H JS QD JH 4H 4S 465 | 9C 7S JH 4S 3S TS QC 8C TC 4H 466 | QH 9D 4D JH QS 3S 2C 7C 6C 2D 467 | 4H 9S JD 5C 5H AH 9D TS 2D 4C 468 | KS JH TS 5D 2D AH JS 7H AS 8D 469 | JS AH 8C AD KS 5S 8H 2C 6C TH 470 | 2H 5D AD AC KS 3D 8H TS 6H QC 471 | 6D 4H TS 9C 5H JS JH 6S JD 4C 472 | JH QH 4H 2C 6D 3C 5D 4C QS KC 473 | 6H 4H 6C 7H 6S 2S 8S KH QC 8C 474 | 3H 3D 5D KS 4H TD AD 3S 4D TS 475 | 5S 7C 8S 7D 2C KS 7S 6C 8C JS 476 | 5D 2H 3S 7C 5C QD 5H 6D 9C 9H 477 | JS 2S KD 9S 8D TD TS AC 8C 9D 478 | 5H QD 2S AC 8C 9H KS 7C 4S 3C 479 | KH AS 3H 8S 9C JS QS 4S AD 4D 480 | AS 2S TD AD 4D 9H JC 4C 5H QS 481 | 5D 7C 4H TC 2D 6C JS 4S KC 3S 482 | 4C 2C 5D AC 9H 3D JD 8S QS QH 483 | 2C 8S 6H 3C QH 6D TC KD AC AH 484 | QC 6C 3S QS 4S AC 8D 5C AD KH 485 | 5S 4C AC KH AS QC 2C 5C 8D 9C 486 | 8H JD 3C KH 8D 5C 9C QD QH 9D 487 | 7H TS 2C 8C 4S TD JC 9C 5H QH 488 | JS 4S 2C 7C TH 6C AS KS 7S JD 489 | JH 7C 9H 7H TC 5H 3D 6D 5D 4D 490 | 2C QD JH 2H 9D 5S 3D TD AD KS 491 | JD QH 3S 4D TH 7D 6S QS KS 4H 492 | TC KS 5S 8D 8H AD 2S 2D 4C JH 493 | 5S JH TC 3S 2D QS 9D 4C KD 9S 494 | AC KH 3H AS 9D KC 9H QD 6C 6S 495 | 9H 7S 3D 5C 7D KC TD 8H 4H 6S 496 | 3C 7H 8H TC QD 4D 7S 6S QH 6C 497 | 6D AD 4C QD 6C 5D 7D 9D KS TS 498 | JH 2H JD 9S 7S TS KH 8D 5D 8H 499 | 2D 9S 4C 7D 9D 5H QD 6D AC 6S 500 | 7S 6D JC QD JH 4C 6S QS 2H 7D 501 | 8C TD JH KD 2H 5C QS 2C JS 7S 502 | TC 5H 4H JH QD 3S 5S 5D 8S KH 503 | KS KH 7C 2C 5D JH 6S 9C 6D JC 504 | 5H AH JD 9C JS KC 2H 6H 4D 5S 505 | AS 3C TH QC 6H 9C 8S 8C TD 7C 506 | KC 2C QD 9C KH 4D 7S 3C TS 9H 507 | 9C QC 2S TS 8C TD 9S QD 3S 3C 508 | 4D 9D TH JH AH 6S 2S JD QH JS 509 | QD 9H 6C KD 7D 7H 5D 6S 8H AH 510 | 8H 3C 4S 2H 5H QS QH 7S 4H AC 511 | QS 3C 7S 9S 4H 3S AH KS 9D 7C 512 | AD 5S 6S 2H 2D 5H TC 4S 3C 8C 513 | QH TS 6S 4D JS KS JH AS 8S 6D 514 | 2C 8S 2S TD 5H AS TC TS 6C KC 515 | KC TS 8H 2H 3H 7C 4C 5S TH TD 516 | KD AD KH 7H 7S 5D 5H 5S 2D 9C 517 | AD 9S 3D 7S 8C QC 7C 9C KD KS 518 | 3C QC 9S 8C 4D 5C AS QD 6C 2C 519 | 2H KC 8S JD 7S AC 8D 5C 2S 4D 520 | 9D QH 3D 2S TC 3S KS 3C 9H TD 521 | KD 6S AC 2C 7H 5H 3S 6C 6H 8C 522 | QH TC 8S 6S KH TH 4H 5D TS 4D 523 | 8C JS 4H 6H 2C 2H 7D AC QD 3D 524 | QS KC 6S 2D 5S 4H TD 3H JH 4C 525 | 7S 5H 7H 8H KH 6H QS TH KD 7D 526 | 5H AD KD 7C KH 5S TD 6D 3C 6C 527 | 8C 9C 5H JD 7C KC KH 7H 2H 3S 528 | 7S 4H AD 4D 8S QS TH 3D 7H 5S 529 | 8D TC KS KD 9S 6D AD JD 5C 2S 530 | 7H 8H 6C QD 2H 6H 9D TC 9S 7C 531 | 8D 6D 4C 7C 6C 3C TH KH JS JH 532 | 5S 3S 8S JS 9H AS AD 8H 7S KD 533 | JH 7C 2C KC 5H AS AD 9C 9S JS 534 | AD AC 2C 6S QD 7C 3H TH KS KD 535 | 9D JD 4H 8H 4C KH 7S TS 8C KC 536 | 3S 5S 2H 7S 6H 7D KS 5C 6D AD 537 | 5S 8C 9H QS 7H 7S 2H 6C 7D TD 538 | QS 5S TD AC 9D KC 3D TC 2D 4D 539 | TD 2H 7D JD QD 4C 7H 5D KC 3D 540 | 4C 3H 8S KD QH 5S QC 9H TC 5H 541 | 9C QD TH 5H TS 5C 9H AH QH 2C 542 | 4D 6S 3C AC 6C 3D 2C 2H TD TH 543 | AC 9C 5D QC 4D AD 8D 6D 8C KC 544 | AD 3C 4H AC 8D 8H 7S 9S TD JC 545 | 4H 9H QH JS 2D TH TD TC KD KS 546 | 5S 6S 9S 8D TH AS KH 5H 5C 8S 547 | JD 2S 9S 6S 5S 8S 5D 7S 7H 9D 548 | 5D 8C 4C 9D AD TS 2C 7D KD TC 549 | 8S QS 4D KC 5C 8D 4S KH JD KD 550 | AS 5C AD QH 7D 2H 9S 7H 7C TC 551 | 2S 8S JD KH 7S 6C 6D AD 5D QC 552 | 9H 6H 3S 8C 8H AH TC 4H JS TD 553 | 2C TS 4D 7H 2D QC 9C 5D TH 7C 554 | 6C 8H QC 5D TS JH 5C 5H 9H 4S 555 | 2D QC 7H AS JS 8S 2H 4C 4H 8D 556 | JS 6S AC KD 3D 3C 4S 7H TH KC 557 | QH KH 6S QS 5S 4H 3C QD 3S 3H 558 | 7H AS KH 8C 4H 9C 5S 3D 6S TS 559 | 9C 7C 3H 5S QD 2C 3D AD AC 5H 560 | JH TD 2D 4C TS 3H KH AD 3S 7S 561 | AS 4C 5H 4D 6S KD JC 3C 6H 2D 562 | 3H 6S 8C 2D TH 4S AH QH AD 5H 563 | 7C 2S 9H 7H KC 5C 6D 5S 3H JC 564 | 3C TC 9C 4H QD TD JH 6D 9H 5S 565 | 7C 6S 5C 5D 6C 4S 7H 9H 6H AH 566 | AD 2H 7D KC 2C 4C 2S 9S 7H 3S 567 | TH 4C 8S 6S 3S AD KS AS JH TD 568 | 5C TD 4S 4D AD 6S 5D TC 9C 7D 569 | 8H 3S 4D 4S 5S 6H 5C AC 3H 3D 570 | 9H 3C AC 4S QS 8S 9D QH 5H 4D 571 | JC 6C 5H TS AC 9C JD 8C 7C QD 572 | 8S 8H 9C JD 2D QC QH 6H 3C 8D 573 | KS JS 2H 6H 5H QH QS 3H 7C 6D 574 | TC 3H 4S 7H QC 2H 3S 8C JS KH 575 | AH 8H 5S 4C 9H JD 3H 7S JC AC 576 | 3C 2D 4C 5S 6C 4S QS 3S JD 3D 577 | 5H 2D TC AH KS 6D 7H AD 8C 6H 578 | 6C 7S 3C JD 7C 8H KS KH AH 6D 579 | AH 7D 3H 8H 8S 7H QS 5H 9D 2D 580 | JD AC 4H 7S 8S 9S KS AS 9D QH 581 | 7S 2C 8S 5S JH QS JC AH KD 4C 582 | AH 2S 9H 4H 8D TS TD 6H QH JD 583 | 4H JC 3H QS 6D 7S 9C 8S 9D 8D 584 | 5H TD 4S 9S 4C 8C 8D 7H 3H 3D 585 | QS KH 3S 2C 2S 3C 7S TD 4S QD 586 | 7C TD 4D 5S KH AC AS 7H 4C 6C 587 | 2S 5H 6D JD 9H QS 8S 2C 2H TD 588 | 2S TS 6H 9H 7S 4H JC 4C 5D 5S 589 | 2C 5H 7D 4H 3S QH JC JS 6D 8H 590 | 4C QH 7C QD 3S AD TH 8S 5S TS 591 | 9H TC 2S TD JC 7D 3S 3D TH QH 592 | 7D 4C 8S 5C JH 8H 6S 3S KC 3H 593 | JC 3H KH TC QH TH 6H 2C AC 5H 594 | QS 2H 9D 2C AS 6S 6C 2S 8C 8S 595 | 9H 7D QC TH 4H KD QS AC 7S 3C 596 | 4D JH 6S 5S 8H KS 9S QC 3S AS 597 | JD 2D 6S 7S TC 9H KC 3H 7D KD 598 | 2H KH 7C 4D 4S 3H JS QD 7D KC 599 | 4C JC AS 9D 3C JS 6C 8H QD 4D 600 | AH JS 3S 6C 4C 3D JH 6D 9C 9H 601 | 9H 2D 8C 7H 5S KS 6H 9C 2S TC 602 | 6C 8C AD 7H 6H 3D KH AS 5D TH 603 | KS 8C 3S TS 8S 4D 5S 9S 6C 4H 604 | 9H 4S 4H 5C 7D KC 2D 2H 9D JH 605 | 5C JS TC 9D 9H 5H 7S KH JC 6S 606 | 7C 9H 8H 4D JC KH JD 2H TD TC 607 | 8H 6C 2H 2C KH 6H 9D QS QH 5H 608 | AC 7D 2S 3D QD JC 2D 8D JD JH 609 | 2H JC 2D 7H 2C 3C 8D KD TD 4H 610 | 3S 4H 6D 8D TS 3H TD 3D 6H TH 611 | JH JC 3S AC QH 9H 7H 8S QC 2C 612 | 7H TD QS 4S 8S 9C 2S 5D 4D 2H 613 | 3D TS 3H 2S QC 8H 6H KC JC KS 614 | 5D JD 7D TC 8C 6C 9S 3D 8D AC 615 | 8H 6H JH 6C 5D 8D 8S 4H AD 2C 616 | 9D 4H 2D 2C 3S TS AS TC 3C 5D 617 | 4D TH 5H KS QS 6C 4S 2H 3D AD 618 | 5C KC 6H 2C 5S 3C 4D 2D 9H 9S 619 | JD 4C 3H TH QH 9H 5S AH 8S AC 620 | 7D 9S 6S 2H TD 9C 4H 8H QS 4C 621 | 3C 6H 5D 4H 8C 9C KC 6S QD QS 622 | 3S 9H KD TC 2D JS 8C 6S 4H 4S 623 | 2S 4C 8S QS 6H KH 3H TH 8C 5D 624 | 2C KH 5S 3S 7S 7H 6C 9D QD 8D 625 | 8H KS AC 2D KH TS 6C JS KC 7H 626 | 9C KS 5C TD QC AH 6C 5H 9S 7C 627 | 5D 4D 3H 4H 6S 7C 7S AH QD TD 628 | 2H 7D QC 6S TC TS AH 7S 9D 3H 629 | TH 5H QD 9S KS 7S 7C 6H 8C TD 630 | TH 2D 4D QC 5C 7D JD AH 9C 4H 631 | 4H 3H AH 8D 6H QC QH 9H 2H 2C 632 | 2D AD 4C TS 6H 7S TH 4H QS TD 633 | 3C KD 2H 3H QS JD TC QC 5D 8H 634 | KS JC QD TH 9S KD 8D 8C 2D 9C 635 | 3C QD KD 6D 4D 8D AH AD QC 8S 636 | 8H 3S 9D 2S 3H KS 6H 4C 7C KC 637 | TH 9S 5C 3D 7D 6H AC 7S 4D 2C 638 | 5C 3D JD 4D 2D 6D 5H 9H 4C KH 639 | AS 7H TD 6C 2H 3D QD KS 4C 4S 640 | JC 3C AC 7C JD JS 8H 9S QC 5D 641 | JD 6S 5S 2H AS 8C 7D 5H JH 3D 642 | 8D TC 5S 9S 8S 3H JC 5H 7S AS 643 | 5C TD 3D 7D 4H 8D 7H 4D 5D JS 644 | QS 9C KS TD 2S 8S 5C 2H 4H AS 645 | TH 7S 4H 7D 3H JD KD 5D 2S KC 646 | JD 7H 4S 8H 4C JS 6H QH 5S 4H 647 | 2C QS 8C 5S 3H QC 2S 6C QD AD 648 | 8C 3D JD TC 4H 2H AD 5S AC 2S 649 | 5D 2C JS 2D AD 9D 3D 4C 4S JH 650 | 8D 5H 5D 6H 7S 4D KS 9D TD JD 651 | 3D 6D 9C 2S AS 7D 5S 5C 8H JD 652 | 7C 8S 3S 6S 5H JD TC AD 7H 7S 653 | 2S 9D TS 4D AC 8D 6C QD JD 3H 654 | 9S KH 2C 3C AC 3D 5H 6H 8D 5D 655 | KS 3D 2D 6S AS 4C 2S 7C 7H KH 656 | AC 2H 3S JC 5C QH 4D 2D 5H 7S 657 | TS AS JD 8C 6H JC 8S 5S 2C 5D 658 | 7S QH 7H 6C QC 8H 2D 7C JD 2S 659 | 2C QD 2S 2H JC 9C 5D 2D JD JH 660 | 7C 5C 9C 8S 7D 6D 8D 6C 9S JH 661 | 2C AD 6S 5H 3S KS 7S 9D KH 4C 662 | 7H 6C 2C 5C TH 9D 8D 3S QC AH 663 | 5S KC 6H TC 5H 8S TH 6D 3C AH 664 | 9C KD 4H AD TD 9S 4S 7D 6H 5D 665 | 7H 5C 5H 6D AS 4C KD KH 4H 9D 666 | 3C 2S 5C 6C JD QS 2H 9D 7D 3H 667 | AC 2S 6S 7S JS QD 5C QS 6H AD 668 | 5H TH QC 7H TC 3S 7C 6D KC 3D 669 | 4H 3D QC 9S 8H 2C 3S JC KS 5C 670 | 4S 6S 2C 6H 8S 3S 3D 9H 3H JS 671 | 4S 8C 4D 2D 8H 9H 7D 9D AH TS 672 | 9S 2C 9H 4C 8D AS 7D 3D 6D 5S 673 | 6S 4C 7H 8C 3H 5H JC AH 9D 9C 674 | 2S 7C 5S JD 8C 3S 3D 4D 7D 6S 675 | 3C KC 4S 5D 7D 3D JD 7H 3H 4H 676 | 9C 9H 4H 4D TH 6D QD 8S 9S 7S 677 | 2H AC 8S 4S AD 8C 2C AH 7D TC 678 | TS 9H 3C AD KS TC 3D 8C 8H JD 679 | QC 8D 2C 3C 7D 7C JD 9H 9C 6C 680 | AH 6S JS JH 5D AS QC 2C JD TD 681 | 9H KD 2H 5D 2D 3S 7D TC AH TS 682 | TD 8H AS 5D AH QC AC 6S TC 5H 683 | KS 4S 7H 4D 8D 9C TC 2H 6H 3H 684 | 3H KD 4S QD QH 3D 8H 8C TD 7S 685 | 8S JD TC AH JS QS 2D KH KS 4D 686 | 3C AD JC KD JS KH 4S TH 9H 2C 687 | QC 5S JS 9S KS AS 7C QD 2S JD 688 | KC 5S QS 3S 2D AC 5D 9H 8H KS 689 | 6H 9C TC AD 2C 6D 5S JD 6C 7C 690 | QS KH TD QD 2C 3H 8S 2S QC AH 691 | 9D 9H JH TC QH 3C 2S JS 5C 7H 692 | 6C 3S 3D 2S 4S QD 2D TH 5D 2C 693 | 2D 6H 6D 2S JC QH AS 7H 4H KH 694 | 5H 6S KS AD TC TS 7C AC 4S 4H 695 | AD 3C 4H QS 8C 9D KS 2H 2D 4D 696 | 4S 9D 6C 6D 9C AC 8D 3H 7H KD 697 | JC AH 6C TS JD 6D AD 3S 5D QD 698 | JC JH JD 3S 7S 8S JS QC 3H 4S 699 | JD TH 5C 2C AD JS 7H 9S 2H 7S 700 | 8D 3S JH 4D QC AS JD 2C KC 6H 701 | 2C AC 5H KD 5S 7H QD JH AH 2D 702 | JC QH 8D 8S TC 5H 5C AH 8C 6C 703 | 3H JS 8S QD JH 3C 4H 6D 5C 3S 704 | 6D 4S 4C AH 5H 5S 3H JD 7C 8D 705 | 8H AH 2H 3H JS 3C 7D QC 4H KD 706 | 6S 2H KD 5H 8H 2D 3C 8S 7S QD 707 | 2S 7S KC QC AH TC QS 6D 4C 8D 708 | 5S 9H 2C 3S QD 7S 6C 2H 7C 9D 709 | 3C 6C 5C 5S JD JC KS 3S 5D TS 710 | 7C KS 6S 5S 2S 2D TC 2H 5H QS 711 | AS 7H 6S TS 5H 9S 9D 3C KD 2H 712 | 4S JS QS 3S 4H 7C 2S AC 6S 9D 713 | 8C JH 2H 5H 7C 5D QH QS KH QC 714 | 3S TD 3H 7C KC 8D 5H 8S KH 8C 715 | 4H KH JD TS 3C 7H AS QC JS 5S 716 | AH 9D 2C 8D 4D 2D 6H 6C KC 6S 717 | 2S 6H 9D 3S 7H 4D KH 8H KD 3D 718 | 9C TC AC JH KH 4D JD 5H TD 3S 719 | 7S 4H 9D AS 4C 7D QS 9S 2S KH 720 | 3S 8D 8S KS 8C JC 5C KH 2H 5D 721 | 8S QH 2C 4D KC JS QC 9D AC 6H 722 | 8S 8C 7C JS JD 6S 4C 9C AC 4S 723 | QH 5D 2C 7D JC 8S 2D JS JH 4C 724 | JS 4C 7S TS JH KC KH 5H QD 4S 725 | QD 8C 8D 2D 6S TD 9D AC QH 5S 726 | QH QC JS 3D 3C 5C 4H KH 8S 7H 727 | 7C 2C 5S JC 8S 3H QC 5D 2H KC 728 | 5S 8D KD 6H 4H QD QH 6D AH 3D 729 | 7S KS 6C 2S 4D AC QS 5H TS JD 730 | 7C 2D TC 5D QS AC JS QC 6C KC 731 | 2C KS 4D 3H TS 8S AD 4H 7S 9S 732 | QD 9H QH 5H 4H 4D KH 3S JC AD 733 | 4D AC KC 8D 6D 4C 2D KH 2C JD 734 | 2C 9H 2D AH 3H 6D 9C 7D TC KS 735 | 8C 3H KD 7C 5C 2S 4S 5H AS AH 736 | TH JD 4H KD 3H TC 5C 3S AC KH 737 | 6D 7H AH 7S QC 6H 2D TD JD AS 738 | JH 5D 7H TC 9S 7D JC AS 5S KH 739 | 2H 8C AD TH 6H QD KD 9H 6S 6C 740 | QH KC 9D 4D 3S JS JH 4H 2C 9H 741 | TC 7H KH 4H JC 7D 9S 3H QS 7S 742 | AD 7D JH 6C 7H 4H 3S 3H 4D QH 743 | JD 2H 5C AS 6C QC 4D 3C TC JH 744 | AC JD 3H 6H 4C JC AD 7D 7H 9H 745 | 4H TC TS 2C 8C 6S KS 2H JD 9S 746 | 4C 3H QS QC 9S 9H 6D KC 9D 9C 747 | 5C AD 8C 2C QH TH QD JC 8D 8H 748 | QC 2C 2S QD 9C 4D 3S 8D JH QS 749 | 9D 3S 2C 7S 7C JC TD 3C TC 9H 750 | 3C TS 8H 5C 4C 2C 6S 8D 7C 4H 751 | KS 7H 2H TC 4H 2C 3S AS AH QS 752 | 8C 2D 2H 2C 4S 4C 6S 7D 5S 3S 753 | TH QC 5D TD 3C QS KD KC KS AS 754 | 4D AH KD 9H KS 5C 4C 6H JC 7S 755 | KC 4H 5C QS TC 2H JC 9S AH QH 756 | 4S 9H 3H 5H 3C QD 2H QC JH 8H 757 | 5D AS 7H 2C 3D JH 6H 4C 6S 7D 758 | 9C JD 9H AH JS 8S QH 3H KS 8H 759 | 3S AC QC TS 4D AD 3D AH 8S 9H 760 | 7H 3H QS 9C 9S 5H JH JS AH AC 761 | 8D 3C JD 2H AC 9C 7H 5S 4D 8H 762 | 7C JH 9H 6C JS 9S 7H 8C 9D 4H 763 | 2D AS 9S 6H 4D JS JH 9H AD QD 764 | 6H 7S JH KH AH 7H TD 5S 6S 2C 765 | 8H JH 6S 5H 5S 9D TC 4C QC 9S 766 | 7D 2C KD 3H 5H AS QD 7H JS 4D 767 | TS QH 6C 8H TH 5H 3C 3H 9C 9D 768 | AD KH JS 5D 3H AS AC 9S 5C KC 769 | 2C KH 8C JC QS 6D AH 2D KC TC 770 | 9D 3H 2S 7C 4D 6D KH KS 8D 7D 771 | 9H 2S TC JH AC QC 3H 5S 3S 8H 772 | 3S AS KD 8H 4C 3H 7C JH QH TS 773 | 7S 6D 7H 9D JH 4C 3D 3S 6C AS 774 | 4S 2H 2C 4C 8S 5H KC 8C QC QD 775 | 3H 3S 6C QS QC 2D 6S 5D 2C 9D 776 | 2H 8D JH 2S 3H 2D 6C 5C 7S AD 777 | 9H JS 5D QH 8S TS 2H 7S 6S AD 778 | 6D QC 9S 7H 5H 5C 7D KC JD 4H 779 | QC 5S 9H 9C 4D 6S KS 2S 4C 7C 780 | 9H 7C 4H 8D 3S 6H 5C 8H JS 7S 781 | 2D 6H JS TD 4H 4D JC TH 5H KC 782 | AC 7C 8D TH 3H 9S 2D 4C KC 4D 783 | KD QS 9C 7S 3D KS AD TS 4C 4H 784 | QH 9C 8H 2S 7D KS 7H 5D KD 4C 785 | 9C 2S 2H JC 6S 6C TC QC JH 5C 786 | 7S AC 8H KC 8S 6H QS JC 3D 6S 787 | JS 2D JH 8C 4S 6H 8H 6D 5D AD 788 | 6H 7D 2S 4H 9H 7C AS AC 8H 5S 789 | 3C JS 4S 6D 5H 2S QH 6S 9C 2C 790 | 3D 5S 6S 9S 4C QS 8D QD 8S TC 791 | 9C 3D AH 9H 5S 2C 7D AD JC 3S 792 | 7H TC AS 3C 6S 6D 7S KH KC 9H 793 | 3S TC 8H 6S 5H JH 8C 7D AC 2S 794 | QD 9D 9C 3S JC 8C KS 8H 5D 4D 795 | JS AH JD 6D 9D 8C 9H 9S 8H 3H 796 | 2D 6S 4C 4D 8S AD 4S TC AH 9H 797 | TS AC QC TH KC 6D 4H 7S 8C 2H 798 | 3C QD JS 9D 5S JC AH 2H TS 9H 799 | 3H 4D QH 5D 9C 5H 7D 4S JC 3S 800 | 8S TH 3H 7C 2H JD JS TS AC 8D 801 | 9C 2H TD KC JD 2S 8C 5S AD 2C 802 | 3D KD 7C 5H 4D QH QD TC 6H 7D 803 | 7H 2C KC 5S KD 6H AH QC 7S QH 804 | 6H 5C AC 5H 2C 9C 2D 7C TD 2S 805 | 4D 9D AH 3D 7C JD 4H 8C 4C KS 806 | TH 3C JS QH 8H 4C AS 3D QS QC 807 | 4D 7S 5H JH 6D 7D 6H JS KH 3C 808 | QD 8S 7D 2H 2C 7C JC 2S 5H 8C 809 | QH 8S 9D TC 2H AD 7C 8D QD 6S 810 | 3S 7C AD 9H 2H 9S JD TS 4C 2D 811 | 3S AS 4H QC 2C 8H 8S 7S TD TC 812 | JH TH TD 3S 4D 4H 5S 5D QS 2C 813 | 8C QD QH TC 6D 4S 9S 9D 4H QC 814 | 8C JS 9D 6H JD 3H AD 6S TD QC 815 | KC 8S 3D 7C TD 7D 8D 9H 4S 3S 816 | 6C 4S 3D 9D KD TC KC KS AC 5S 817 | 7C 6S QH 3D JS KD 6H 6D 2D 8C 818 | JD 2S 5S 4H 8S AC 2D 6S TS 5C 819 | 5H 8C 5S 3C 4S 3D 7C 8D AS 3H 820 | AS TS 7C 3H AD 7D JC QS 6C 6H 821 | 3S 9S 4C AC QH 5H 5D 9H TS 4H 822 | 6C 5C 7H 7S TD AD JD 5S 2H 2S 823 | 7D 6C KC 3S JD 8D 8S TS QS KH 824 | 8S QS 8D 6C TH AC AH 2C 8H 9S 825 | 7H TD KH QH 8S 3D 4D AH JD AS 826 | TS 3D 2H JC 2S JH KH 6C QC JS 827 | KC TH 2D 6H 7S 2S TC 8C 9D QS 828 | 3C 9D 6S KH 8H 6D 5D TH 2C 2H 829 | 6H TC 7D AD 4D 8S TS 9H TD 7S 830 | JS 6D JD JC 2H AC 6C 3D KH 8D 831 | KH JD 9S 5D 4H 4C 3H 7S QS 5C 832 | 4H JD 5D 3S 3C 4D KH QH QS 7S 833 | JD TS 8S QD AH 4C 6H 3S 5S 2C 834 | QS 3D JD AS 8D TH 7C 6S QC KS 835 | 7S 2H 8C QC 7H AC 6D 2D TH KH 836 | 5S 6C 7H KH 7D AH 8C 5C 7S 3D 837 | 3C KD AD 7D 6C 4D KS 2D 8C 4S 838 | 7C 8D 5S 2D 2S AH AD 2C 9D TD 839 | 3C AD 4S KS JH 7C 5C 8C 9C TH 840 | AS TD 4D 7C JD 8C QH 3C 5H 9S 841 | 3H 9C 8S 9S 6S QD KS AH 5H JH 842 | QC 9C 5S 4H 2H TD 7D AS 8C 9D 843 | 8C 2C 9D KD TC 7S 3D KH QC 3C 844 | 4D AS 4C QS 5S 9D 6S JD QH KS 845 | 6D AH 6C 4C 5H TS 9H 7D 3D 5S 846 | QS JD 7C 8D 9C AC 3S 6S 6C KH 847 | 8H JH 5D 9S 6D AS 6S 3S QC 7H 848 | QD AD 5C JH 2H AH 4H AS KC 2C 849 | JH 9C 2C 6H 2D JS 5D 9H KC 6D 850 | 7D 9D KD TH 3H AS 6S QC 6H AD 851 | JD 4H 7D KC 3H JS 3C TH 3D QS 852 | 4C 3H 8C QD 5H 6H AS 8H AD JD 853 | TH 8S KD 5D QC 7D JS 5S 5H TS 854 | 7D KC 9D QS 3H 3C 6D TS 7S AH 855 | 7C 4H 7H AH QC AC 4D 5D 6D TH 856 | 3C 4H 2S KD 8H 5H JH TC 6C JD 857 | 4S 8C 3D 4H JS TD 7S JH QS KD 858 | 7C QC KD 4D 7H 6S AD TD TC KH 859 | 5H 9H KC 3H 4D 3D AD 6S QD 6H 860 | TH 7C 6H TS QH 5S 2C KC TD 6S 861 | 7C 4D 5S JD JH 7D AC KD KH 4H 862 | 7D 6C 8D 8H 5C JH 8S QD TH JD 863 | 8D 7D 6C 7C 9D KD AS 5C QH JH 864 | 9S 2C 8C 3C 4C KS JH 2D 8D 4H 865 | 7S 6C JH KH 8H 3H 9D 2D AH 6D 866 | 4D TC 9C 8D 7H TD KS TH KD 3C 867 | JD 9H 8D QD AS KD 9D 2C 2S 9C 868 | 8D 3H 5C 7H KS 5H QH 2D 8C 9H 869 | 2D TH 6D QD 6C KC 3H 3S AD 4C 870 | 4H 3H JS 9D 3C TC 5H QH QC JC 871 | 3D 5C 6H 3S 3C JC 5S 7S 2S QH 872 | AC 5C 8C 4D 5D 4H 2S QD 3C 3H 873 | 2C TD AH 9C KD JS 6S QD 4C QC 874 | QS 8C 3S 4H TC JS 3H 7C JC AD 875 | 5H 4D 9C KS JC TD 9S TS 8S 9H 876 | QD TS 7D AS AC 2C TD 6H 8H AH 877 | 6S AD 8C 4S 9H 8D 9D KH 8S 3C 878 | QS 4D 2D 7S KH JS JC AD 4C 3C 879 | QS 9S 7H KC TD TH 5H JS AC JH 880 | 6D AC 2S QS 7C AS KS 6S KH 5S 881 | 6D 8H KH 3C QS 2H 5C 9C 9D 6C 882 | JS 2C 4C 6H 7D JC AC QD TD 3H 883 | 4H QC 8H JD 4C KD KS 5C KC 7S 884 | 6D 2D 3H 2S QD 5S 7H AS TH 6S 885 | AS 6D 8D 2C 8S TD 8H QD JC AH 886 | 9C 9H 2D TD QH 2H 5C TC 3D 8H 887 | KC 8S 3D KH 2S TS TC 6S 4D JH 888 | 9H 9D QS AC KC 6H 5D 4D 8D AH 889 | 9S 5C QS 4H 7C 7D 2H 8S AD JS 890 | 3D AC 9S AS 2C 2D 2H 3H JC KH 891 | 7H QH KH JD TC KS 5S 8H 4C 8D 892 | 2H 7H 3S 2S 5H QS 3C AS 9H KD 893 | AD 3D JD 6H 5S 9C 6D AC 9S 3S 894 | 3D 5D 9C 2D AC 4S 2S AD 6C 6S 895 | QC 4C 2D 3H 6S KC QH QD 2H JH 896 | QC 3C 8S 4D 9S 2H 5C 8H QS QD 897 | 6D KD 6S 7H 3S KH 2H 5C JC 6C 898 | 3S 9S TC 6S 8H 2D AD 7S 8S TS 899 | 3C 6H 9C 3H 5C JC 8H QH TD QD 900 | 3C JS QD 5D TD 2C KH 9H TH AS 901 | 9S TC JD 3D 5C 5H AD QH 9H KC 902 | TC 7H 4H 8H 3H TD 6S AC 7C 2S 903 | QS 9D 5D 3C JC KS 4D 6C JH 2S 904 | 9S 6S 3C 7H TS 4C KD 6D 3D 9C 905 | 2D 9H AH AC 7H 2S JH 3S 7C QC 906 | QD 9H 3C 2H AC AS 8S KD 8C KH 907 | 2D 7S TD TH 6D JD 8D 4D 2H 5S 908 | 8S QH KD JD QS JH 4D KC 5H 3S 909 | 3C KH QC 6D 8H 3S AH 7D TD 2D 910 | 5S 9H QH 4S 6S 6C 6D TS TH 7S 911 | 6C 4C 6D QS JS 9C TS 3H 8D 8S 912 | JS 5C 7S AS 2C AH 2H AD 5S TC 913 | KD 6C 9C 9D TS 2S JC 4H 2C QD 914 | QS 9H TC 3H KC KS 4H 3C AD TH 915 | KH 9C 2H KD 9D TC 7S KC JH 2D 916 | 7C 3S KC AS 8C 5D 9C 9S QH 3H 917 | 2D 8C TD 4C 2H QC 5D TC 2C 7D 918 | KS 4D 6C QH TD KH 5D 7C AD 8D 919 | 2S 9S 8S 4C 8C 3D 6H QD 7C 7H 920 | 6C 8S QH 5H TS 5C 3C 4S 2S 2H 921 | 8S 6S 2H JC 3S 3H 9D 8C 2S 7H 922 | QC 2C 8H 9C AC JD 4C 4H 6S 3S 923 | 3H 3S 7D 4C 9S 5H 8H JC 3D TC 924 | QH 2S 2D 9S KD QD 9H AD 6D 9C 925 | 8D 2D KS 9S JC 4C JD KC 4S TH 926 | KH TS 6D 4D 5C KD 5H AS 9H AD 927 | QD JS 7C 6D 5D 5C TH 5H QH QS 928 | 9D QH KH 5H JH 4C 4D TC TH 6C 929 | KH AS TS 9D KD 9C 7S 4D 8H 5S 930 | KH AS 2S 7D 9D 4C TS TH AH 7C 931 | KS 4D AC 8S 9S 8D TH QH 9D 5C 932 | 5D 5C 8C QS TC 4C 3D 3S 2C 8D 933 | 9D KS 2D 3C KC 4S 8C KH 6C JC 934 | 8H AH 6H 7D 7S QD 3C 4C 6C KC 935 | 3H 2C QH 8H AS 7D 4C 8C 4H KC 936 | QD 5S 4H 2C TD AH JH QH 4C 8S 937 | 3H QS 5S JS 8H 2S 9H 9C 3S 2C 938 | 6H TS 7S JC QD AC TD KC 5S 3H 939 | QH AS QS 7D JC KC 2C 4C 5C 5S 940 | QH 3D AS JS 4H 8D 7H JC 2S 9C 941 | 5D 4D 2S 4S 9D 9C 2D QS 8H 7H 942 | 6D 7H 3H JS TS AC 2D JH 7C 8S 943 | JH 5H KC 3C TC 5S 9H 4C 8H 9D 944 | 8S KC 5H 9H AD KS 9D KH 8D AH 945 | JC 2H 9H KS 6S 3H QC 5H AH 9C 946 | 5C KH 5S AD 6C JC 9H QC 9C TD 947 | 5S 5D JC QH 2D KS 8H QS 2H TS 948 | JH 5H 5S AH 7H 3C 8S AS TD KH 949 | 6H 3D JD 2C 4C KC 7S AH 6C JH 950 | 4C KS 9D AD 7S KC 7D 8H 3S 9C 951 | 7H 5C 5H 3C 8H QC 3D KH 6D JC 952 | 2D 4H 5D 7D QC AD AH 9H QH 8H 953 | KD 8C JS 9D 3S 3C 2H 5D 6D 2S 954 | 8S 6S TS 3C 6H 8D 5S 3H TD 6C 955 | KS 3D JH 9C 7C 9S QS 5S 4H 6H 956 | 7S 6S TH 4S KC KD 3S JC JH KS 957 | 7C 3C 2S 6D QH 2C 7S 5H 8H AH 958 | KC 8D QD 6D KH 5C 7H 9D 3D 9C 959 | 6H 2D 8S JS 9S 2S 6D KC 7C TC 960 | KD 9C JH 7H KC 8S 2S 7S 3D 6H 961 | 4H 9H 2D 4C 8H 7H 5S 8S 2H 8D 962 | AD 7C 3C 7S 5S 4D 9H 3D JC KH 963 | 5D AS 7D 6D 9C JC 4C QH QS KH 964 | KD JD 7D 3D QS QC 8S 6D JS QD 965 | 6S 8C 5S QH TH 9H AS AC 2C JD 966 | QC KS QH 7S 3C 4C 5C KC 5D AH 967 | 6C 4H 9D AH 2C 3H KD 3D TS 5C 968 | TD 8S QS AS JS 3H KD AC 4H KS 969 | 7D 5D TS 9H 4H 4C 9C 2H 8C QC 970 | 2C 7D 9H 4D KS 4C QH AD KD JS 971 | QD AD AH KH 9D JS 9H JC KD JD 972 | 8S 3C 4S TS 7S 4D 5C 2S 6H 7C 973 | JS 7S 5C KD 6D QH 8S TD 2H 6S 974 | QH 6C TC 6H TD 4C 9D 2H QC 8H 975 | 3D TS 4D 2H 6H 6S 2C 7H 8S 6C 976 | 9H 9D JD JH 3S AH 2C 6S 3H 8S 977 | 2C QS 8C 5S 3H 2S 7D 3C AD 4S 978 | 5C QC QH AS TS 4S 6S 4C 5H JS 979 | JH 5C TD 4C 6H JS KD KH QS 4H 980 | TC KH JC 4D 9H 9D 8D KC 3C 8H 981 | 2H TC 8S AD 9S 4H TS 7H 2C 5C 982 | 4H 2S 6C 5S KS AH 9C 7C 8H KD 983 | TS QH TD QS 3C JH AH 2C 8D 7D 984 | 5D KC 3H 5S AC 4S 7H QS 4C 2H 985 | 3D 7D QC KH JH 6D 6C TD TH KD 986 | 5S 8D TH 6C 9D 7D KH 8C 9S 6D 987 | JD QS 7S QC 2S QH JC 4S KS 8D 988 | 7S 5S 9S JD KD 9C JC AD 2D 7C 989 | 4S 5H AH JH 9C 5D TD 7C 2D 6S 990 | KC 6C 7H 6S 9C QD 5S 4H KS TD 991 | 6S 8D KS 2D TH TD 9H JD TS 3S 992 | KH JS 4H 5D 9D TC TD QC JD TS 993 | QS QD AC AD 4C 6S 2D AS 3H KC 994 | 4C 7C 3C TD QS 9C KC AS 8D AD 995 | KC 7H QC 6D 8H 6S 5S AH 7S 8C 996 | 3S AD 9H JC 6D JD AS KH 6S JH 997 | AD 3D TS KS 7H JH 2D JS QD AC 998 | 9C JD 7C 6D TC 6H 6C JC 3D 3S 999 | QC KC 3S JC KD 2C 8D AH QS TS 1000 | AS KD 3D JD 8H 7C 8C 5C QD 6C 1001 | -------------------------------------------------------------------------------- /res/problem008.txt: -------------------------------------------------------------------------------- 1 | 73167176531330624919225119674426574742355349194934 2 | 96983520312774506326239578318016984801869478851843 3 | 85861560789112949495459501737958331952853208805511 4 | 12540698747158523863050715693290963295227443043557 5 | 66896648950445244523161731856403098711121722383113 6 | 62229893423380308135336276614282806444486645238749 7 | 30358907296290491560440772390713810515859307960866 8 | 70172427121883998797908792274921901699720888093776 9 | 65727333001053367881220235421809751254540594752243 10 | 52584907711670556013604839586446706324415722155397 11 | 53697817977846174064955149290862569321978468622482 12 | 83972241375657056057490261407972968652414535100474 13 | 82166370484403199890008895243450658541227588666881 14 | 16427171479924442928230863465674813919123162824586 15 | 17866458359124566529476545682848912883142607690042 16 | 24219022671055626321111109370544217506941658960408 17 | 07198403850962455444362981230987879927244284909188 18 | 84580156166097919133875499200524063689912560717606 19 | 05886116467109405077541002256983155200055935729725 20 | 71636269561882670428252483600823257530420752963450 -------------------------------------------------------------------------------- /res/problem011.txt: -------------------------------------------------------------------------------- 1 | 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 2 | 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 3 | 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 4 | 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 5 | 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 6 | 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 7 | 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 8 | 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 9 | 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 10 | 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 11 | 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 12 | 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 13 | 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 14 | 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 15 | 04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66 16 | 88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 17 | 04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 18 | 20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 19 | 20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 20 | 01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48 -------------------------------------------------------------------------------- /res/problem013.txt: -------------------------------------------------------------------------------- 1 | 37107287533902102798797998220837590246510135740250 2 | 46376937677490009712648124896970078050417018260538 3 | 74324986199524741059474233309513058123726617309629 4 | 91942213363574161572522430563301811072406154908250 5 | 23067588207539346171171980310421047513778063246676 6 | 89261670696623633820136378418383684178734361726757 7 | 28112879812849979408065481931592621691275889832738 8 | 44274228917432520321923589422876796487670272189318 9 | 47451445736001306439091167216856844588711603153276 10 | 70386486105843025439939619828917593665686757934951 11 | 62176457141856560629502157223196586755079324193331 12 | 64906352462741904929101432445813822663347944758178 13 | 92575867718337217661963751590579239728245598838407 14 | 58203565325359399008402633568948830189458628227828 15 | 80181199384826282014278194139940567587151170094390 16 | 35398664372827112653829987240784473053190104293586 17 | 86515506006295864861532075273371959191420517255829 18 | 71693888707715466499115593487603532921714970056938 19 | 54370070576826684624621495650076471787294438377604 20 | 53282654108756828443191190634694037855217779295145 21 | 36123272525000296071075082563815656710885258350721 22 | 45876576172410976447339110607218265236877223636045 23 | 17423706905851860660448207621209813287860733969412 24 | 81142660418086830619328460811191061556940512689692 25 | 51934325451728388641918047049293215058642563049483 26 | 62467221648435076201727918039944693004732956340691 27 | 15732444386908125794514089057706229429197107928209 28 | 55037687525678773091862540744969844508330393682126 29 | 18336384825330154686196124348767681297534375946515 30 | 80386287592878490201521685554828717201219257766954 31 | 78182833757993103614740356856449095527097864797581 32 | 16726320100436897842553539920931837441497806860984 33 | 48403098129077791799088218795327364475675590848030 34 | 87086987551392711854517078544161852424320693150332 35 | 59959406895756536782107074926966537676326235447210 36 | 69793950679652694742597709739166693763042633987085 37 | 41052684708299085211399427365734116182760315001271 38 | 65378607361501080857009149939512557028198746004375 39 | 35829035317434717326932123578154982629742552737307 40 | 94953759765105305946966067683156574377167401875275 41 | 88902802571733229619176668713819931811048770190271 42 | 25267680276078003013678680992525463401061632866526 43 | 36270218540497705585629946580636237993140746255962 44 | 24074486908231174977792365466257246923322810917141 45 | 91430288197103288597806669760892938638285025333403 46 | 34413065578016127815921815005561868836468420090470 47 | 23053081172816430487623791969842487255036638784583 48 | 11487696932154902810424020138335124462181441773470 49 | 63783299490636259666498587618221225225512486764533 50 | 67720186971698544312419572409913959008952310058822 51 | 95548255300263520781532296796249481641953868218774 52 | 76085327132285723110424803456124867697064507995236 53 | 37774242535411291684276865538926205024910326572967 54 | 23701913275725675285653248258265463092207058596522 55 | 29798860272258331913126375147341994889534765745501 56 | 18495701454879288984856827726077713721403798879715 57 | 38298203783031473527721580348144513491373226651381 58 | 34829543829199918180278916522431027392251122869539 59 | 40957953066405232632538044100059654939159879593635 60 | 29746152185502371307642255121183693803580388584903 61 | 41698116222072977186158236678424689157993532961922 62 | 62467957194401269043877107275048102390895523597457 63 | 23189706772547915061505504953922979530901129967519 64 | 86188088225875314529584099251203829009407770775672 65 | 11306739708304724483816533873502340845647058077308 66 | 82959174767140363198008187129011875491310547126581 67 | 97623331044818386269515456334926366572897563400500 68 | 42846280183517070527831839425882145521227251250327 69 | 55121603546981200581762165212827652751691296897789 70 | 32238195734329339946437501907836945765883352399886 71 | 75506164965184775180738168837861091527357929701337 72 | 62177842752192623401942399639168044983993173312731 73 | 32924185707147349566916674687634660915035914677504 74 | 99518671430235219628894890102423325116913619626622 75 | 73267460800591547471830798392868535206946944540724 76 | 76841822524674417161514036427982273348055556214818 77 | 97142617910342598647204516893989422179826088076852 78 | 87783646182799346313767754307809363333018982642090 79 | 10848802521674670883215120185883543223812876952786 80 | 71329612474782464538636993009049310363619763878039 81 | 62184073572399794223406235393808339651327408011116 82 | 66627891981488087797941876876144230030984490851411 83 | 60661826293682836764744779239180335110989069790714 84 | 85786944089552990653640447425576083659976645795096 85 | 66024396409905389607120198219976047599490197230297 86 | 64913982680032973156037120041377903785566085089252 87 | 16730939319872750275468906903707539413042652315011 88 | 94809377245048795150954100921645863754710598436791 89 | 78639167021187492431995700641917969777599028300699 90 | 15368713711936614952811305876380278410754449733078 91 | 40789923115535562561142322423255033685442488917353 92 | 44889911501440648020369068063960672322193204149535 93 | 41503128880339536053299340368006977710650566631954 94 | 81234880673210146739058568557934581403627822703280 95 | 82616570773948327592232845941706525094512325230608 96 | 22918802058777319719839450180888072429661980811197 97 | 77158542502016545090413245809786882778948721859617 98 | 72107838435069186155435662884062257473692284509516 99 | 20849603980134001723930671666823555245252804609722 100 | 53503534226472524250874054075591789781264330331690 -------------------------------------------------------------------------------- /res/problem018.txt: -------------------------------------------------------------------------------- 1 | 75 2 | 95 64 3 | 17 47 82 4 | 18 35 87 10 5 | 20 04 82 47 65 6 | 19 01 23 75 03 34 7 | 88 02 77 73 07 63 67 8 | 99 65 04 28 06 16 70 92 9 | 41 41 26 56 83 40 80 70 33 10 | 41 48 72 33 47 32 37 16 94 29 11 | 53 71 44 65 25 43 91 52 97 51 14 12 | 70 11 33 28 77 73 17 78 39 68 17 57 13 | 91 71 52 38 17 14 91 43 58 50 27 29 48 14 | 63 66 04 68 89 53 67 30 73 16 69 87 40 31 15 | 04 62 98 27 23 09 70 98 73 93 38 53 60 04 23 -------------------------------------------------------------------------------- /res/problem022.txt: -------------------------------------------------------------------------------- 1 | "MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE","MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE","APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL","BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA","BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN","ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE","BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA","KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN","ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI","GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL","MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY","KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA","BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY","LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE","HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA","MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE","FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA","VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA","PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT","KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE","TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL","ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE","GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA","ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE","OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA","MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA","SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA","ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS","STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE","TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE","MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH","AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA","JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN","DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA","JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN","PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA","GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA","ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA","MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE","JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE","LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE","IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE","BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE","FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN","EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA","JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE","HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE","PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY","CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA","ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA","MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI","SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE","EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI","GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA","ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI","LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN","LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO","COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA","LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE","DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA","ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA","REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA","KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA","TORI","OCTAVIA","JADE","DENICE","GERMAINE","SIERRA","MICHELL","CORTNEY","NELLY","DORETHA","SYDNEY","DEIDRA","MONIKA","LASHONDA","JUDI","CHELSEY","ANTIONETTE","MARGOT","BOBBY","ADELAIDE","NAN","LEEANN","ELISHA","DESSIE","LIBBY","KATHI","GAYLA","LATANYA","MINA","MELLISA","KIMBERLEE","JASMIN","RENAE","ZELDA","ELDA","MA","JUSTINA","GUSSIE","EMILIE","CAMILLA","ABBIE","ROCIO","KAITLYN","JESSE","EDYTHE","ASHLEIGH","SELINA","LAKESHA","GERI","ALLENE","PAMALA","MICHAELA","DAYNA","CARYN","ROSALIA","SUN","JACQULINE","REBECA","MARYBETH","KRYSTLE","IOLA","DOTTIE","BENNIE","BELLE","AUBREY","GRISELDA","ERNESTINA","ELIDA","ADRIANNE","DEMETRIA","DELMA","CHONG","JAQUELINE","DESTINY","ARLEEN","VIRGINA","RETHA","FATIMA","TILLIE","ELEANORE","CARI","TREVA","BIRDIE","WILHELMINA","ROSALEE","MAURINE","LATRICE","YONG","JENA","TARYN","ELIA","DEBBY","MAUDIE","JEANNA","DELILAH","CATRINA","SHONDA","HORTENCIA","THEODORA","TERESITA","ROBBIN","DANETTE","MARYJANE","FREDDIE","DELPHINE","BRIANNE","NILDA","DANNA","CINDI","BESS","IONA","HANNA","ARIEL","WINONA","VIDA","ROSITA","MARIANNA","WILLIAM","RACHEAL","GUILLERMINA","ELOISA","CELESTINE","CAREN","MALISSA","LONA","CHANTEL","SHELLIE","MARISELA","LEORA","AGATHA","SOLEDAD","MIGDALIA","IVETTE","CHRISTEN","ATHENA","JANEL","CHLOE","VEDA","PATTIE","TESSIE","TERA","MARILYNN","LUCRETIA","KARRIE","DINAH","DANIELA","ALECIA","ADELINA","VERNICE","SHIELA","PORTIA","MERRY","LASHAWN","DEVON","DARA","TAWANA","OMA","VERDA","CHRISTIN","ALENE","ZELLA","SANDI","RAFAELA","MAYA","KIRA","CANDIDA","ALVINA","SUZAN","SHAYLA","LYN","LETTIE","ALVA","SAMATHA","ORALIA","MATILDE","MADONNA","LARISSA","VESTA","RENITA","INDIA","DELOIS","SHANDA","PHILLIS","LORRI","ERLINDA","CRUZ","CATHRINE","BARB","ZOE","ISABELL","IONE","GISELA","CHARLIE","VALENCIA","ROXANNA","MAYME","KISHA","ELLIE","MELLISSA","DORRIS","DALIA","BELLA","ANNETTA","ZOILA","RETA","REINA","LAURETTA","KYLIE","CHRISTAL","PILAR","CHARLA","ELISSA","TIFFANI","TANA","PAULINA","LEOTA","BREANNA","JAYME","CARMEL","VERNELL","TOMASA","MANDI","DOMINGA","SANTA","MELODIE","LURA","ALEXA","TAMELA","RYAN","MIRNA","KERRIE","VENUS","NOEL","FELICITA","CRISTY","CARMELITA","BERNIECE","ANNEMARIE","TIARA","ROSEANNE","MISSY","CORI","ROXANA","PRICILLA","KRISTAL","JUNG","ELYSE","HAYDEE","ALETHA","BETTINA","MARGE","GILLIAN","FILOMENA","CHARLES","ZENAIDA","HARRIETTE","CARIDAD","VADA","UNA","ARETHA","PEARLINE","MARJORY","MARCELA","FLOR","EVETTE","ELOUISE","ALINA","TRINIDAD","DAVID","DAMARIS","CATHARINE","CARROLL","BELVA","NAKIA","MARLENA","LUANNE","LORINE","KARON","DORENE","DANITA","BRENNA","TATIANA","SAMMIE","LOUANN","LOREN","JULIANNA","ANDRIA","PHILOMENA","LUCILA","LEONORA","DOVIE","ROMONA","MIMI","JACQUELIN","GAYE","TONJA","MISTI","JOE","GENE","CHASTITY","STACIA","ROXANN","MICAELA","NIKITA","MEI","VELDA","MARLYS","JOHNNA","AURA","LAVERN","IVONNE","HAYLEY","NICKI","MAJORIE","HERLINDA","GEORGE","ALPHA","YADIRA","PERLA","GREGORIA","DANIEL","ANTONETTE","SHELLI","MOZELLE","MARIAH","JOELLE","CORDELIA","JOSETTE","CHIQUITA","TRISTA","LOUIS","LAQUITA","GEORGIANA","CANDI","SHANON","LONNIE","HILDEGARD","CECIL","VALENTINA","STEPHANY","MAGDA","KAROL","GERRY","GABRIELLA","TIANA","ROMA","RICHELLE","RAY","PRINCESS","OLETA","JACQUE","IDELLA","ALAINA","SUZANNA","JOVITA","BLAIR","TOSHA","RAVEN","NEREIDA","MARLYN","KYLA","JOSEPH","DELFINA","TENA","STEPHENIE","SABINA","NATHALIE","MARCELLE","GERTIE","DARLEEN","THEA","SHARONDA","SHANTEL","BELEN","VENESSA","ROSALINA","ONA","GENOVEVA","COREY","CLEMENTINE","ROSALBA","RENATE","RENATA","MI","IVORY","GEORGIANNA","FLOY","DORCAS","ARIANA","TYRA","THEDA","MARIAM","JULI","JESICA","DONNIE","VIKKI","VERLA","ROSELYN","MELVINA","JANNETTE","GINNY","DEBRAH","CORRIE","ASIA","VIOLETA","MYRTIS","LATRICIA","COLLETTE","CHARLEEN","ANISSA","VIVIANA","TWYLA","PRECIOUS","NEDRA","LATONIA","LAN","HELLEN","FABIOLA","ANNAMARIE","ADELL","SHARYN","CHANTAL","NIKI","MAUD","LIZETTE","LINDY","KIA","KESHA","JEANA","DANELLE","CHARLINE","CHANEL","CARROL","VALORIE","LIA","DORTHA","CRISTAL","SUNNY","LEONE","LEILANI","GERRI","DEBI","ANDRA","KESHIA","IMA","EULALIA","EASTER","DULCE","NATIVIDAD","LINNIE","KAMI","GEORGIE","CATINA","BROOK","ALDA","WINNIFRED","SHARLA","RUTHANN","MEAGHAN","MAGDALENE","LISSETTE","ADELAIDA","VENITA","TRENA","SHIRLENE","SHAMEKA","ELIZEBETH","DIAN","SHANTA","MICKEY","LATOSHA","CARLOTTA","WINDY","SOON","ROSINA","MARIANN","LEISA","JONNIE","DAWNA","CATHIE","BILLY","ASTRID","SIDNEY","LAUREEN","JANEEN","HOLLI","FAWN","VICKEY","TERESSA","SHANTE","RUBYE","MARCELINA","CHANDA","CARY","TERESE","SCARLETT","MARTY","MARNIE","LULU","LISETTE","JENIFFER","ELENOR","DORINDA","DONITA","CARMAN","BERNITA","ALTAGRACIA","ALETA","ADRIANNA","ZORAIDA","RONNIE","NICOLA","LYNDSEY","KENDALL","JANINA","CHRISSY","AMI","STARLA","PHYLIS","PHUONG","KYRA","CHARISSE","BLANCH","SANJUANITA","RONA","NANCI","MARILEE","MARANDA","CORY","BRIGETTE","SANJUANA","MARITA","KASSANDRA","JOYCELYN","IRA","FELIPA","CHELSIE","BONNY","MIREYA","LORENZA","KYONG","ILEANA","CANDELARIA","TONY","TOBY","SHERIE","OK","MARK","LUCIE","LEATRICE","LAKESHIA","GERDA","EDIE","BAMBI","MARYLIN","LAVON","HORTENSE","GARNET","EVIE","TRESSA","SHAYNA","LAVINA","KYUNG","JEANETTA","SHERRILL","SHARA","PHYLISS","MITTIE","ANABEL","ALESIA","THUY","TAWANDA","RICHARD","JOANIE","TIFFANIE","LASHANDA","KARISSA","ENRIQUETA","DARIA","DANIELLA","CORINNA","ALANNA","ABBEY","ROXANE","ROSEANNA","MAGNOLIA","LIDA","KYLE","JOELLEN","ERA","CORAL","CARLEEN","TRESA","PEGGIE","NOVELLA","NILA","MAYBELLE","JENELLE","CARINA","NOVA","MELINA","MARQUERITE","MARGARETTE","JOSEPHINA","EVONNE","DEVIN","CINTHIA","ALBINA","TOYA","TAWNYA","SHERITA","SANTOS","MYRIAM","LIZABETH","LISE","KEELY","JENNI","GISELLE","CHERYLE","ARDITH","ARDIS","ALESHA","ADRIANE","SHAINA","LINNEA","KAROLYN","HONG","FLORIDA","FELISHA","DORI","DARCI","ARTIE","ARMIDA","ZOLA","XIOMARA","VERGIE","SHAMIKA","NENA","NANNETTE","MAXIE","LOVIE","JEANE","JAIMIE","INGE","FARRAH","ELAINA","CAITLYN","STARR","FELICITAS","CHERLY","CARYL","YOLONDA","YASMIN","TEENA","PRUDENCE","PENNIE","NYDIA","MACKENZIE","ORPHA","MARVEL","LIZBETH","LAURETTE","JERRIE","HERMELINDA","CAROLEE","TIERRA","MIRIAN","META","MELONY","KORI","JENNETTE","JAMILA","ENA","ANH","YOSHIKO","SUSANNAH","SALINA","RHIANNON","JOLEEN","CRISTINE","ASHTON","ARACELY","TOMEKA","SHALONDA","MARTI","LACIE","KALA","JADA","ILSE","HAILEY","BRITTANI","ZONA","SYBLE","SHERRYL","RANDY","NIDIA","MARLO","KANDICE","KANDI","DEB","DEAN","AMERICA","ALYCIA","TOMMY","RONNA","NORENE","MERCY","JOSE","INGEBORG","GIOVANNA","GEMMA","CHRISTEL","AUDRY","ZORA","VITA","VAN","TRISH","STEPHAINE","SHIRLEE","SHANIKA","MELONIE","MAZIE","JAZMIN","INGA","HOA","HETTIE","GERALYN","FONDA","ESTRELLA","ADELLA","SU","SARITA","RINA","MILISSA","MARIBETH","GOLDA","EVON","ETHELYN","ENEDINA","CHERISE","CHANA","VELVA","TAWANNA","SADE","MIRTA","LI","KARIE","JACINTA","ELNA","DAVINA","CIERRA","ASHLIE","ALBERTHA","TANESHA","STEPHANI","NELLE","MINDI","LU","LORINDA","LARUE","FLORENE","DEMETRA","DEDRA","CIARA","CHANTELLE","ASHLY","SUZY","ROSALVA","NOELIA","LYDA","LEATHA","KRYSTYNA","KRISTAN","KARRI","DARLINE","DARCIE","CINDA","CHEYENNE","CHERRIE","AWILDA","ALMEDA","ROLANDA","LANETTE","JERILYN","GISELE","EVALYN","CYNDI","CLETA","CARIN","ZINA","ZENA","VELIA","TANIKA","PAUL","CHARISSA","THOMAS","TALIA","MARGARETE","LAVONDA","KAYLEE","KATHLENE","JONNA","IRENA","ILONA","IDALIA","CANDIS","CANDANCE","BRANDEE","ANITRA","ALIDA","SIGRID","NICOLETTE","MARYJO","LINETTE","HEDWIG","CHRISTIANA","CASSIDY","ALEXIA","TRESSIE","MODESTA","LUPITA","LITA","GLADIS","EVELIA","DAVIDA","CHERRI","CECILY","ASHELY","ANNABEL","AGUSTINA","WANITA","SHIRLY","ROSAURA","HULDA","EUN","BAILEY","YETTA","VERONA","THOMASINA","SIBYL","SHANNAN","MECHELLE","LUE","LEANDRA","LANI","KYLEE","KANDY","JOLYNN","FERNE","EBONI","CORENE","ALYSIA","ZULA","NADA","MOIRA","LYNDSAY","LORRETTA","JUAN","JAMMIE","HORTENSIA","GAYNELL","CAMERON","ADRIA","VINA","VICENTA","TANGELA","STEPHINE","NORINE","NELLA","LIANA","LESLEE","KIMBERELY","ILIANA","GLORY","FELICA","EMOGENE","ELFRIEDE","EDEN","EARTHA","CARMA","BEA","OCIE","MARRY","LENNIE","KIARA","JACALYN","CARLOTA","ARIELLE","YU","STAR","OTILIA","KIRSTIN","KACEY","JOHNETTA","JOEY","JOETTA","JERALDINE","JAUNITA","ELANA","DORTHEA","CAMI","AMADA","ADELIA","VERNITA","TAMAR","SIOBHAN","RENEA","RASHIDA","OUIDA","ODELL","NILSA","MERYL","KRISTYN","JULIETA","DANICA","BREANNE","AUREA","ANGLEA","SHERRON","ODETTE","MALIA","LORELEI","LIN","LEESA","KENNA","KATHLYN","FIONA","CHARLETTE","SUZIE","SHANTELL","SABRA","RACQUEL","MYONG","MIRA","MARTINE","LUCIENNE","LAVADA","JULIANN","JOHNIE","ELVERA","DELPHIA","CLAIR","CHRISTIANE","CHAROLETTE","CARRI","AUGUSTINE","ASHA","ANGELLA","PAOLA","NINFA","LEDA","LAI","EDA","SUNSHINE","STEFANI","SHANELL","PALMA","MACHELLE","LISSA","KECIA","KATHRYNE","KARLENE","JULISSA","JETTIE","JENNIFFER","HUI","CORRINA","CHRISTOPHER","CAROLANN","ALENA","TESS","ROSARIA","MYRTICE","MARYLEE","LIANE","KENYATTA","JUDIE","JANEY","IN","ELMIRA","ELDORA","DENNA","CRISTI","CATHI","ZAIDA","VONNIE","VIVA","VERNIE","ROSALINE","MARIELA","LUCIANA","LESLI","KARAN","FELICE","DENEEN","ADINA","WYNONA","TARSHA","SHERON","SHASTA","SHANITA","SHANI","SHANDRA","RANDA","PINKIE","PARIS","NELIDA","MARILOU","LYLA","LAURENE","LACI","JOI","JANENE","DOROTHA","DANIELE","DANI","CAROLYNN","CARLYN","BERENICE","AYESHA","ANNELIESE","ALETHEA","THERSA","TAMIKO","RUFINA","OLIVA","MOZELL","MARYLYN","MADISON","KRISTIAN","KATHYRN","KASANDRA","KANDACE","JANAE","GABRIEL","DOMENICA","DEBBRA","DANNIELLE","CHUN","BUFFY","BARBIE","ARCELIA","AJA","ZENOBIA","SHAREN","SHAREE","PATRICK","PAGE","MY","LAVINIA","KUM","KACIE","JACKELINE","HUONG","FELISA","EMELIA","ELEANORA","CYTHIA","CRISTIN","CLYDE","CLARIBEL","CARON","ANASTACIA","ZULMA","ZANDRA","YOKO","TENISHA","SUSANN","SHERILYN","SHAY","SHAWANDA","SABINE","ROMANA","MATHILDA","LINSEY","KEIKO","JOANA","ISELA","GRETTA","GEORGETTA","EUGENIE","DUSTY","DESIRAE","DELORA","CORAZON","ANTONINA","ANIKA","WILLENE","TRACEE","TAMATHA","REGAN","NICHELLE","MICKIE","MAEGAN","LUANA","LANITA","KELSIE","EDELMIRA","BREE","AFTON","TEODORA","TAMIE","SHENA","MEG","LINH","KELI","KACI","DANYELLE","BRITT","ARLETTE","ALBERTINE","ADELLE","TIFFINY","STORMY","SIMONA","NUMBERS","NICOLASA","NICHOL","NIA","NAKISHA","MEE","MAIRA","LOREEN","KIZZY","JOHNNY","JAY","FALLON","CHRISTENE","BOBBYE","ANTHONY","YING","VINCENZA","TANJA","RUBIE","RONI","QUEENIE","MARGARETT","KIMBERLI","IRMGARD","IDELL","HILMA","EVELINA","ESTA","EMILEE","DENNISE","DANIA","CARL","CARIE","ANTONIO","WAI","SANG","RISA","RIKKI","PARTICIA","MUI","MASAKO","MARIO","LUVENIA","LOREE","LONI","LIEN","KEVIN","GIGI","FLORENCIA","DORIAN","DENITA","DALLAS","CHI","BILLYE","ALEXANDER","TOMIKA","SHARITA","RANA","NIKOLE","NEOMA","MARGARITE","MADALYN","LUCINA","LAILA","KALI","JENETTE","GABRIELE","EVELYNE","ELENORA","CLEMENTINA","ALEJANDRINA","ZULEMA","VIOLETTE","VANNESSA","THRESA","RETTA","PIA","PATIENCE","NOELLA","NICKIE","JONELL","DELTA","CHUNG","CHAYA","CAMELIA","BETHEL","ANYA","ANDREW","THANH","SUZANN","SPRING","SHU","MILA","LILLA","LAVERNA","KEESHA","KATTIE","GIA","GEORGENE","EVELINE","ESTELL","ELIZBETH","VIVIENNE","VALLIE","TRUDIE","STEPHANE","MICHEL","MAGALY","MADIE","KENYETTA","KARREN","JANETTA","HERMINE","HARMONY","DRUCILLA","DEBBI","CELESTINA","CANDIE","BRITNI","BECKIE","AMINA","ZITA","YUN","YOLANDE","VIVIEN","VERNETTA","TRUDI","SOMMER","PEARLE","PATRINA","OSSIE","NICOLLE","LOYCE","LETTY","LARISA","KATHARINA","JOSELYN","JONELLE","JENELL","IESHA","HEIDE","FLORINDA","FLORENTINA","FLO","ELODIA","DORINE","BRUNILDA","BRIGID","ASHLI","ARDELLA","TWANA","THU","TARAH","SUNG","SHEA","SHAVON","SHANE","SERINA","RAYNA","RAMONITA","NGA","MARGURITE","LUCRECIA","KOURTNEY","KATI","JESUS","JESENIA","DIAMOND","CRISTA","AYANA","ALICA","ALIA","VINNIE","SUELLEN","ROMELIA","RACHELL","PIPER","OLYMPIA","MICHIKO","KATHALEEN","JOLIE","JESSI","JANESSA","HANA","HA","ELEASE","CARLETTA","BRITANY","SHONA","SALOME","ROSAMOND","REGENA","RAINA","NGOC","NELIA","LOUVENIA","LESIA","LATRINA","LATICIA","LARHONDA","JINA","JACKI","HOLLIS","HOLLEY","EMMY","DEEANN","CORETTA","ARNETTA","VELVET","THALIA","SHANICE","NETA","MIKKI","MICKI","LONNA","LEANA","LASHUNDA","KILEY","JOYE","JACQULYN","IGNACIA","HYUN","HIROKO","HENRY","HENRIETTE","ELAYNE","DELINDA","DARNELL","DAHLIA","COREEN","CONSUELA","CONCHITA","CELINE","BABETTE","AYANNA","ANETTE","ALBERTINA","SKYE","SHAWNEE","SHANEKA","QUIANA","PAMELIA","MIN","MERRI","MERLENE","MARGIT","KIESHA","KIERA","KAYLENE","JODEE","JENISE","ERLENE","EMMIE","ELSE","DARYL","DALILA","DAISEY","CODY","CASIE","BELIA","BABARA","VERSIE","VANESA","SHELBA","SHAWNDA","SAM","NORMAN","NIKIA","NAOMA","MARNA","MARGERET","MADALINE","LAWANA","KINDRA","JUTTA","JAZMINE","JANETT","HANNELORE","GLENDORA","GERTRUD","GARNETT","FREEDA","FREDERICA","FLORANCE","FLAVIA","DENNIS","CARLINE","BEVERLEE","ANJANETTE","VALDA","TRINITY","TAMALA","STEVIE","SHONNA","SHA","SARINA","ONEIDA","MICAH","MERILYN","MARLEEN","LURLINE","LENNA","KATHERIN","JIN","JENI","HAE","GRACIA","GLADY","FARAH","ERIC","ENOLA","EMA","DOMINQUE","DEVONA","DELANA","CECILA","CAPRICE","ALYSHA","ALI","ALETHIA","VENA","THERESIA","TAWNY","SONG","SHAKIRA","SAMARA","SACHIKO","RACHELE","PAMELLA","NICKY","MARNI","MARIEL","MAREN","MALISA","LIGIA","LERA","LATORIA","LARAE","KIMBER","KATHERN","KAREY","JENNEFER","JANETH","HALINA","FREDIA","DELISA","DEBROAH","CIERA","CHIN","ANGELIKA","ANDREE","ALTHA","YEN","VIVAN","TERRESA","TANNA","SUK","SUDIE","SOO","SIGNE","SALENA","RONNI","REBBECCA","MYRTIE","MCKENZIE","MALIKA","MAIDA","LOAN","LEONARDA","KAYLEIGH","FRANCE","ETHYL","ELLYN","DAYLE","CAMMIE","BRITTNI","BIRGIT","AVELINA","ASUNCION","ARIANNA","AKIKO","VENICE","TYESHA","TONIE","TIESHA","TAKISHA","STEFFANIE","SINDY","SANTANA","MEGHANN","MANDA","MACIE","LADY","KELLYE","KELLEE","JOSLYN","JASON","INGER","INDIRA","GLINDA","GLENNIS","FERNANDA","FAUSTINA","ENEIDA","ELICIA","DOT","DIGNA","DELL","ARLETTA","ANDRE","WILLIA","TAMMARA","TABETHA","SHERRELL","SARI","REFUGIO","REBBECA","PAULETTA","NIEVES","NATOSHA","NAKITA","MAMMIE","KENISHA","KAZUKO","KASSIE","GARY","EARLEAN","DAPHINE","CORLISS","CLOTILDE","CAROLYNE","BERNETTA","AUGUSTINA","AUDREA","ANNIS","ANNABELL","YAN","TENNILLE","TAMICA","SELENE","SEAN","ROSANA","REGENIA","QIANA","MARKITA","MACY","LEEANNE","LAURINE","KYM","JESSENIA","JANITA","GEORGINE","GENIE","EMIKO","ELVIE","DEANDRA","DAGMAR","CORIE","COLLEN","CHERISH","ROMAINE","PORSHA","PEARLENE","MICHELINE","MERNA","MARGORIE","MARGARETTA","LORE","KENNETH","JENINE","HERMINA","FREDERICKA","ELKE","DRUSILLA","DORATHY","DIONE","DESIRE","CELENA","BRIGIDA","ANGELES","ALLEGRA","THEO","TAMEKIA","SYNTHIA","STEPHEN","SOOK","SLYVIA","ROSANN","REATHA","RAYE","MARQUETTA","MARGART","LING","LAYLA","KYMBERLY","KIANA","KAYLEEN","KATLYN","KARMEN","JOELLA","IRINA","EMELDA","ELENI","DETRA","CLEMMIE","CHERYLL","CHANTELL","CATHEY","ARNITA","ARLA","ANGLE","ANGELIC","ALYSE","ZOFIA","THOMASINE","TENNIE","SON","SHERLY","SHERLEY","SHARYL","REMEDIOS","PETRINA","NICKOLE","MYUNG","MYRLE","MOZELLA","LOUANNE","LISHA","LATIA","LANE","KRYSTA","JULIENNE","JOEL","JEANENE","JACQUALINE","ISAURA","GWENDA","EARLEEN","DONALD","CLEOPATRA","CARLIE","AUDIE","ANTONIETTA","ALISE","ALEX","VERDELL","VAL","TYLER","TOMOKO","THAO","TALISHA","STEVEN","SO","SHEMIKA","SHAUN","SCARLET","SAVANNA","SANTINA","ROSIA","RAEANN","ODILIA","NANA","MINNA","MAGAN","LYNELLE","LE","KARMA","JOEANN","IVANA","INELL","ILANA","HYE","HONEY","HEE","GUDRUN","FRANK","DREAMA","CRISSY","CHANTE","CARMELINA","ARVILLA","ARTHUR","ANNAMAE","ALVERA","ALEIDA","AARON","YEE","YANIRA","VANDA","TIANNA","TAM","STEFANIA","SHIRA","PERRY","NICOL","NANCIE","MONSERRATE","MINH","MELYNDA","MELANY","MATTHEW","LOVELLA","LAURE","KIRBY","KACY","JACQUELYNN","HYON","GERTHA","FRANCISCO","ELIANA","CHRISTENA","CHRISTEEN","CHARISE","CATERINA","CARLEY","CANDYCE","ARLENA","AMMIE","YANG","WILLETTE","VANITA","TUYET","TINY","SYREETA","SILVA","SCOTT","RONALD","PENNEY","NYLA","MICHAL","MAURICE","MARYAM","MARYA","MAGEN","LUDIE","LOMA","LIVIA","LANELL","KIMBERLIE","JULEE","DONETTA","DIEDRA","DENISHA","DEANE","DAWNE","CLARINE","CHERRYL","BRONWYN","BRANDON","ALLA","VALERY","TONDA","SUEANN","SORAYA","SHOSHANA","SHELA","SHARLEEN","SHANELLE","NERISSA","MICHEAL","MERIDITH","MELLIE","MAYE","MAPLE","MAGARET","LUIS","LILI","LEONILA","LEONIE","LEEANNA","LAVONIA","LAVERA","KRISTEL","KATHEY","KATHE","JUSTIN","JULIAN","JIMMY","JANN","ILDA","HILDRED","HILDEGARDE","GENIA","FUMIKO","EVELIN","ERMELINDA","ELLY","DUNG","DOLORIS","DIONNA","DANAE","BERNEICE","ANNICE","ALIX","VERENA","VERDIE","TRISTAN","SHAWNNA","SHAWANA","SHAUNNA","ROZELLA","RANDEE","RANAE","MILAGRO","LYNELL","LUISE","LOUIE","LOIDA","LISBETH","KARLEEN","JUNITA","JONA","ISIS","HYACINTH","HEDY","GWENN","ETHELENE","ERLINE","EDWARD","DONYA","DOMONIQUE","DELICIA","DANNETTE","CICELY","BRANDA","BLYTHE","BETHANN","ASHLYN","ANNALEE","ALLINE","YUKO","VELLA","TRANG","TOWANDA","TESHA","SHERLYN","NARCISA","MIGUELINA","MERI","MAYBELL","MARLANA","MARGUERITA","MADLYN","LUNA","LORY","LORIANN","LIBERTY","LEONORE","LEIGHANN","LAURICE","LATESHA","LARONDA","KATRICE","KASIE","KARL","KALEY","JADWIGA","GLENNIE","GEARLDINE","FRANCINA","EPIFANIA","DYAN","DORIE","DIEDRE","DENESE","DEMETRICE","DELENA","DARBY","CRISTIE","CLEORA","CATARINA","CARISA","BERNIE","BARBERA","ALMETA","TRULA","TEREASA","SOLANGE","SHEILAH","SHAVONNE","SANORA","ROCHELL","MATHILDE","MARGARETA","MAIA","LYNSEY","LAWANNA","LAUNA","KENA","KEENA","KATIA","JAMEY","GLYNDA","GAYLENE","ELVINA","ELANOR","DANUTA","DANIKA","CRISTEN","CORDIE","COLETTA","CLARITA","CARMON","BRYNN","AZUCENA","AUNDREA","ANGELE","YI","WALTER","VERLIE","VERLENE","TAMESHA","SILVANA","SEBRINA","SAMIRA","REDA","RAYLENE","PENNI","PANDORA","NORAH","NOMA","MIREILLE","MELISSIA","MARYALICE","LARAINE","KIMBERY","KARYL","KARINE","KAM","JOLANDA","JOHANA","JESUSA","JALEESA","JAE","JACQUELYNE","IRISH","ILUMINADA","HILARIA","HANH","GENNIE","FRANCIE","FLORETTA","EXIE","EDDA","DREMA","DELPHA","BEV","BARBAR","ASSUNTA","ARDELL","ANNALISA","ALISIA","YUKIKO","YOLANDO","WONDA","WEI","WALTRAUD","VETA","TEQUILA","TEMEKA","TAMEIKA","SHIRLEEN","SHENITA","PIEDAD","OZELLA","MIRTHA","MARILU","KIMIKO","JULIANE","JENICE","JEN","JANAY","JACQUILINE","HILDE","FE","FAE","EVAN","EUGENE","ELOIS","ECHO","DEVORAH","CHAU","BRINDA","BETSEY","ARMINDA","ARACELIS","APRYL","ANNETT","ALISHIA","VEOLA","USHA","TOSHIKO","THEOLA","TASHIA","TALITHA","SHERY","RUDY","RENETTA","REIKO","RASHEEDA","OMEGA","OBDULIA","MIKA","MELAINE","MEGGAN","MARTIN","MARLEN","MARGET","MARCELINE","MANA","MAGDALEN","LIBRADA","LEZLIE","LEXIE","LATASHIA","LASANDRA","KELLE","ISIDRA","ISA","INOCENCIA","GWYN","FRANCOISE","ERMINIA","ERINN","DIMPLE","DEVORA","CRISELDA","ARMANDA","ARIE","ARIANE","ANGELO","ANGELENA","ALLEN","ALIZA","ADRIENE","ADALINE","XOCHITL","TWANNA","TRAN","TOMIKO","TAMISHA","TAISHA","SUSY","SIU","RUTHA","ROXY","RHONA","RAYMOND","OTHA","NORIKO","NATASHIA","MERRIE","MELVIN","MARINDA","MARIKO","MARGERT","LORIS","LIZZETTE","LEISHA","KAILA","KA","JOANNIE","JERRICA","JENE","JANNET","JANEE","JACINDA","HERTA","ELENORE","DORETTA","DELAINE","DANIELL","CLAUDIE","CHINA","BRITTA","APOLONIA","AMBERLY","ALEASE","YURI","YUK","WEN","WANETA","UTE","TOMI","SHARRI","SANDIE","ROSELLE","REYNALDA","RAGUEL","PHYLICIA","PATRIA","OLIMPIA","ODELIA","MITZIE","MITCHELL","MISS","MINDA","MIGNON","MICA","MENDY","MARIVEL","MAILE","LYNETTA","LAVETTE","LAURYN","LATRISHA","LAKIESHA","KIERSTEN","KARY","JOSPHINE","JOLYN","JETTA","JANISE","JACQUIE","IVELISSE","GLYNIS","GIANNA","GAYNELLE","EMERALD","DEMETRIUS","DANYELL","DANILLE","DACIA","CORALEE","CHER","CEOLA","BRETT","BELL","ARIANNE","ALESHIA","YUNG","WILLIEMAE","TROY","TRINH","THORA","TAI","SVETLANA","SHERIKA","SHEMEKA","SHAUNDA","ROSELINE","RICKI","MELDA","MALLIE","LAVONNA","LATINA","LARRY","LAQUANDA","LALA","LACHELLE","KLARA","KANDIS","JOHNA","JEANMARIE","JAYE","HANG","GRAYCE","GERTUDE","EMERITA","EBONIE","CLORINDA","CHING","CHERY","CAROLA","BREANN","BLOSSOM","BERNARDINE","BECKI","ARLETHA","ARGELIA","ARA","ALITA","YULANDA","YON","YESSENIA","TOBI","TASIA","SYLVIE","SHIRL","SHIRELY","SHERIDAN","SHELLA","SHANTELLE","SACHA","ROYCE","REBECKA","REAGAN","PROVIDENCIA","PAULENE","MISHA","MIKI","MARLINE","MARICA","LORITA","LATOYIA","LASONYA","KERSTIN","KENDA","KEITHA","KATHRIN","JAYMIE","JACK","GRICELDA","GINETTE","ERYN","ELINA","ELFRIEDA","DANYEL","CHEREE","CHANELLE","BARRIE","AVERY","AURORE","ANNAMARIA","ALLEEN","AILENE","AIDE","YASMINE","VASHTI","VALENTINE","TREASA","TORY","TIFFANEY","SHERYLL","SHARIE","SHANAE","SAU","RAISA","PA","NEDA","MITSUKO","MIRELLA","MILDA","MARYANNA","MARAGRET","MABELLE","LUETTA","LORINA","LETISHA","LATARSHA","LANELLE","LAJUANA","KRISSY","KARLY","KARENA","JON","JESSIKA","JERICA","JEANELLE","JANUARY","JALISA","JACELYN","IZOLA","IVEY","GREGORY","EUNA","ETHA","DREW","DOMITILA","DOMINICA","DAINA","CREOLA","CARLI","CAMIE","BUNNY","BRITTNY","ASHANTI","ANISHA","ALEEN","ADAH","YASUKO","WINTER","VIKI","VALRIE","TONA","TINISHA","THI","TERISA","TATUM","TANEKA","SIMONNE","SHALANDA","SERITA","RESSIE","REFUGIA","PAZ","OLENE","NA","MERRILL","MARGHERITA","MANDIE","MAN","MAIRE","LYNDIA","LUCI","LORRIANE","LORETA","LEONIA","LAVONA","LASHAWNDA","LAKIA","KYOKO","KRYSTINA","KRYSTEN","KENIA","KELSI","JUDE","JEANICE","ISOBEL","GEORGIANN","GENNY","FELICIDAD","EILENE","DEON","DELOISE","DEEDEE","DANNIE","CONCEPTION","CLORA","CHERILYN","CHANG","CALANDRA","BERRY","ARMANDINA","ANISA","ULA","TIMOTHY","TIERA","THERESSA","STEPHANIA","SIMA","SHYLA","SHONTA","SHERA","SHAQUITA","SHALA","SAMMY","ROSSANA","NOHEMI","NERY","MORIAH","MELITA","MELIDA","MELANI","MARYLYNN","MARISHA","MARIETTE","MALORIE","MADELENE","LUDIVINA","LORIA","LORETTE","LORALEE","LIANNE","LEON","LAVENIA","LAURINDA","LASHON","KIT","KIMI","KEILA","KATELYNN","KAI","JONE","JOANE","JI","JAYNA","JANELLA","JA","HUE","HERTHA","FRANCENE","ELINORE","DESPINA","DELSIE","DEEDRA","CLEMENCIA","CARRY","CAROLIN","CARLOS","BULAH","BRITTANIE","BOK","BLONDELL","BIBI","BEAULAH","BEATA","ANNITA","AGRIPINA","VIRGEN","VALENE","UN","TWANDA","TOMMYE","TOI","TARRA","TARI","TAMMERA","SHAKIA","SADYE","RUTHANNE","ROCHEL","RIVKA","PURA","NENITA","NATISHA","MING","MERRILEE","MELODEE","MARVIS","LUCILLA","LEENA","LAVETA","LARITA","LANIE","KEREN","ILEEN","GEORGEANN","GENNA","GENESIS","FRIDA","EWA","EUFEMIA","EMELY","ELA","EDYTH","DEONNA","DEADRA","DARLENA","CHANELL","CHAN","CATHERN","CASSONDRA","CASSAUNDRA","BERNARDA","BERNA","ARLINDA","ANAMARIA","ALBERT","WESLEY","VERTIE","VALERI","TORRI","TATYANA","STASIA","SHERISE","SHERILL","SEASON","SCOTTIE","SANDA","RUTHE","ROSY","ROBERTO","ROBBI","RANEE","QUYEN","PEARLY","PALMIRA","ONITA","NISHA","NIESHA","NIDA","NEVADA","NAM","MERLYN","MAYOLA","MARYLOUISE","MARYLAND","MARX","MARTH","MARGENE","MADELAINE","LONDA","LEONTINE","LEOMA","LEIA","LAWRENCE","LAURALEE","LANORA","LAKITA","KIYOKO","KETURAH","KATELIN","KAREEN","JONIE","JOHNETTE","JENEE","JEANETT","IZETTA","HIEDI","HEIKE","HASSIE","HAROLD","GIUSEPPINA","GEORGANN","FIDELA","FERNANDE","ELWANDA","ELLAMAE","ELIZ","DUSTI","DOTTY","CYNDY","CORALIE","CELESTA","ARGENTINA","ALVERTA","XENIA","WAVA","VANETTA","TORRIE","TASHINA","TANDY","TAMBRA","TAMA","STEPANIE","SHILA","SHAUNTA","SHARAN","SHANIQUA","SHAE","SETSUKO","SERAFINA","SANDEE","ROSAMARIA","PRISCILA","OLINDA","NADENE","MUOI","MICHELINA","MERCEDEZ","MARYROSE","MARIN","MARCENE","MAO","MAGALI","MAFALDA","LOGAN","LINN","LANNIE","KAYCE","KAROLINE","KAMILAH","KAMALA","JUSTA","JOLINE","JENNINE","JACQUETTA","IRAIDA","GERALD","GEORGEANNA","FRANCHESCA","FAIRY","EMELINE","ELANE","EHTEL","EARLIE","DULCIE","DALENE","CRIS","CLASSIE","CHERE","CHARIS","CAROYLN","CARMINA","CARITA","BRIAN","BETHANIE","AYAKO","ARICA","AN","ALYSA","ALESSANDRA","AKILAH","ADRIEN","ZETTA","YOULANDA","YELENA","YAHAIRA","XUAN","WENDOLYN","VICTOR","TIJUANA","TERRELL","TERINA","TERESIA","SUZI","SUNDAY","SHERELL","SHAVONDA","SHAUNTE","SHARDA","SHAKITA","SENA","RYANN","RUBI","RIVA","REGINIA","REA","RACHAL","PARTHENIA","PAMULA","MONNIE","MONET","MICHAELE","MELIA","MARINE","MALKA","MAISHA","LISANDRA","LEO","LEKISHA","LEAN","LAURENCE","LAKENDRA","KRYSTIN","KORTNEY","KIZZIE","KITTIE","KERA","KENDAL","KEMBERLY","KANISHA","JULENE","JULE","JOSHUA","JOHANNE","JEFFREY","JAMEE","HAN","HALLEY","GIDGET","GALINA","FREDRICKA","FLETA","FATIMAH","EUSEBIA","ELZA","ELEONORE","DORTHEY","DORIA","DONELLA","DINORAH","DELORSE","CLARETHA","CHRISTINIA","CHARLYN","BONG","BELKIS","AZZIE","ANDERA","AIKO","ADENA","YER","YAJAIRA","WAN","VANIA","ULRIKE","TOSHIA","TIFANY","STEFANY","SHIZUE","SHENIKA","SHAWANNA","SHAROLYN","SHARILYN","SHAQUANA","SHANTAY","SEE","ROZANNE","ROSELEE","RICKIE","REMONA","REANNA","RAELENE","QUINN","PHUNG","PETRONILA","NATACHA","NANCEY","MYRL","MIYOKO","MIESHA","MERIDETH","MARVELLA","MARQUITTA","MARHTA","MARCHELLE","LIZETH","LIBBIE","LAHOMA","LADAWN","KINA","KATHELEEN","KATHARYN","KARISA","KALEIGH","JUNIE","JULIEANN","JOHNSIE","JANEAN","JAIMEE","JACKQUELINE","HISAKO","HERMA","HELAINE","GWYNETH","GLENN","GITA","EUSTOLIA","EMELINA","ELIN","EDRIS","DONNETTE","DONNETTA","DIERDRE","DENAE","DARCEL","CLAUDE","CLARISA","CINDERELLA","CHIA","CHARLESETTA","CHARITA","CELSA","CASSY","CASSI","CARLEE","BRUNA","BRITTANEY","BRANDE","BILLI","BAO","ANTONETTA","ANGLA","ANGELYN","ANALISA","ALANE","WENONA","WENDIE","VERONIQUE","VANNESA","TOBIE","TEMPIE","SUMIKO","SULEMA","SPARKLE","SOMER","SHEBA","SHAYNE","SHARICE","SHANEL","SHALON","SAGE","ROY","ROSIO","ROSELIA","RENAY","REMA","REENA","PORSCHE","PING","PEG","OZIE","ORETHA","ORALEE","ODA","NU","NGAN","NAKESHA","MILLY","MARYBELLE","MARLIN","MARIS","MARGRETT","MARAGARET","MANIE","LURLENE","LILLIA","LIESELOTTE","LAVELLE","LASHAUNDA","LAKEESHA","KEITH","KAYCEE","KALYN","JOYA","JOETTE","JENAE","JANIECE","ILLA","GRISEL","GLAYDS","GENEVIE","GALA","FREDDA","FRED","ELMER","ELEONOR","DEBERA","DEANDREA","DAN","CORRINNE","CORDIA","CONTESSA","COLENE","CLEOTILDE","CHARLOTT","CHANTAY","CECILLE","BEATRIS","AZALEE","ARLEAN","ARDATH","ANJELICA","ANJA","ALFREDIA","ALEISHA","ADAM","ZADA","YUONNE","XIAO","WILLODEAN","WHITLEY","VENNIE","VANNA","TYISHA","TOVA","TORIE","TONISHA","TILDA","TIEN","TEMPLE","SIRENA","SHERRIL","SHANTI","SHAN","SENAIDA","SAMELLA","ROBBYN","RENDA","REITA","PHEBE","PAULITA","NOBUKO","NGUYET","NEOMI","MOON","MIKAELA","MELANIA","MAXIMINA","MARG","MAISIE","LYNNA","LILLI","LAYNE","LASHAUN","LAKENYA","LAEL","KIRSTIE","KATHLINE","KASHA","KARLYN","KARIMA","JOVAN","JOSEFINE","JENNELL","JACQUI","JACKELYN","HYO","HIEN","GRAZYNA","FLORRIE","FLORIA","ELEONORA","DWANA","DORLA","DONG","DELMY","DEJA","DEDE","DANN","CRYSTA","CLELIA","CLARIS","CLARENCE","CHIEKO","CHERLYN","CHERELLE","CHARMAIN","CHARA","CAMMY","BEE","ARNETTE","ARDELLE","ANNIKA","AMIEE","AMEE","ALLENA","YVONE","YUKI","YOSHIE","YEVETTE","YAEL","WILLETTA","VONCILE","VENETTA","TULA","TONETTE","TIMIKA","TEMIKA","TELMA","TEISHA","TAREN","TA","STACEE","SHIN","SHAWNTA","SATURNINA","RICARDA","POK","PASTY","ONIE","NUBIA","MORA","MIKE","MARIELLE","MARIELLA","MARIANELA","MARDELL","MANY","LUANNA","LOISE","LISABETH","LINDSY","LILLIANA","LILLIAM","LELAH","LEIGHA","LEANORA","LANG","KRISTEEN","KHALILAH","KEELEY","KANDRA","JUNKO","JOAQUINA","JERLENE","JANI","JAMIKA","JAME","HSIU","HERMILA","GOLDEN","GENEVIVE","EVIA","EUGENA","EMMALINE","ELFREDA","ELENE","DONETTE","DELCIE","DEEANNA","DARCEY","CUC","CLARINDA","CIRA","CHAE","CELINDA","CATHERYN","CATHERIN","CASIMIRA","CARMELIA","CAMELLIA","BREANA","BOBETTE","BERNARDINA","BEBE","BASILIA","ARLYNE","AMAL","ALAYNA","ZONIA","ZENIA","YURIKO","YAEKO","WYNELL","WILLOW","WILLENA","VERNIA","TU","TRAVIS","TORA","TERRILYN","TERICA","TENESHA","TAWNA","TAJUANA","TAINA","STEPHNIE","SONA","SOL","SINA","SHONDRA","SHIZUKO","SHERLENE","SHERICE","SHARIKA","ROSSIE","ROSENA","RORY","RIMA","RIA","RHEBA","RENNA","PETER","NATALYA","NANCEE","MELODI","MEDA","MAXIMA","MATHA","MARKETTA","MARICRUZ","MARCELENE","MALVINA","LUBA","LOUETTA","LEIDA","LECIA","LAURAN","LASHAWNA","LAINE","KHADIJAH","KATERINE","KASI","KALLIE","JULIETTA","JESUSITA","JESTINE","JESSIA","JEREMY","JEFFIE","JANYCE","ISADORA","GEORGIANNE","FIDELIA","EVITA","EURA","EULAH","ESTEFANA","ELSY","ELIZABET","ELADIA","DODIE","DION","DIA","DENISSE","DELORAS","DELILA","DAYSI","DAKOTA","CURTIS","CRYSTLE","CONCHA","COLBY","CLARETTA","CHU","CHRISTIA","CHARLSIE","CHARLENA","CARYLON","BETTYANN","ASLEY","ASHLEA","AMIRA","AI","AGUEDA","AGNUS","YUETTE","VINITA","VICTORINA","TYNISHA","TREENA","TOCCARA","TISH","THOMASENA","TEGAN","SOILA","SHILOH","SHENNA","SHARMAINE","SHANTAE","SHANDI","SEPTEMBER","SARAN","SARAI","SANA","SAMUEL","SALLEY","ROSETTE","ROLANDE","REGINE","OTELIA","OSCAR","OLEVIA","NICHOLLE","NECOLE","NAIDA","MYRTA","MYESHA","MITSUE","MINTA","MERTIE","MARGY","MAHALIA","MADALENE","LOVE","LOURA","LOREAN","LEWIS","LESHA","LEONIDA","LENITA","LAVONE","LASHELL","LASHANDRA","LAMONICA","KIMBRA","KATHERINA","KARRY","KANESHA","JULIO","JONG","JENEVA","JAQUELYN","HWA","GILMA","GHISLAINE","GERTRUDIS","FRANSISCA","FERMINA","ETTIE","ETSUKO","ELLIS","ELLAN","ELIDIA","EDRA","DORETHEA","DOREATHA","DENYSE","DENNY","DEETTA","DAINE","CYRSTAL","CORRIN","CAYLA","CARLITA","CAMILA","BURMA","BULA","BUENA","BLAKE","BARABARA","AVRIL","AUSTIN","ALAINE","ZANA","WILHEMINA","WANETTA","VIRGIL","VI","VERONIKA","VERNON","VERLINE","VASILIKI","TONITA","TISA","TEOFILA","TAYNA","TAUNYA","TANDRA","TAKAKO","SUNNI","SUANNE","SIXTA","SHARELL","SEEMA","RUSSELL","ROSENDA","ROBENA","RAYMONDE","PEI","PAMILA","OZELL","NEIDA","NEELY","MISTIE","MICHA","MERISSA","MAURITA","MARYLN","MARYETTA","MARSHALL","MARCELL","MALENA","MAKEDA","MADDIE","LOVETTA","LOURIE","LORRINE","LORILEE","LESTER","LAURENA","LASHAY","LARRAINE","LAREE","LACRESHA","KRISTLE","KRISHNA","KEVA","KEIRA","KAROLE","JOIE","JINNY","JEANNETTA","JAMA","HEIDY","GILBERTE","GEMA","FAVIOLA","EVELYNN","ENDA","ELLI","ELLENA","DIVINA","DAGNY","COLLENE","CODI","CINDIE","CHASSIDY","CHASIDY","CATRICE","CATHERINA","CASSEY","CAROLL","CARLENA","CANDRA","CALISTA","BRYANNA","BRITTENY","BEULA","BARI","AUDRIE","AUDRIA","ARDELIA","ANNELLE","ANGILA","ALONA","ALLYN","DOUGLAS","ROGER","JONATHAN","RALPH","NICHOLAS","BENJAMIN","BRUCE","HARRY","WAYNE","STEVE","HOWARD","ERNEST","PHILLIP","TODD","CRAIG","ALAN","PHILIP","EARL","DANNY","BRYAN","STANLEY","LEONARD","NATHAN","MANUEL","RODNEY","MARVIN","VINCENT","JEFFERY","JEFF","CHAD","JACOB","ALFRED","BRADLEY","HERBERT","FREDERICK","EDWIN","DON","RICKY","RANDALL","BARRY","BERNARD","LEROY","MARCUS","THEODORE","CLIFFORD","MIGUEL","JIM","TOM","CALVIN","BILL","LLOYD","DEREK","WARREN","DARRELL","JEROME","FLOYD","ALVIN","TIM","GORDON","GREG","JORGE","DUSTIN","PEDRO","DERRICK","ZACHARY","HERMAN","GLEN","HECTOR","RICARDO","RICK","BRENT","RAMON","GILBERT","MARC","REGINALD","RUBEN","NATHANIEL","RAFAEL","EDGAR","MILTON","RAUL","BEN","CHESTER","DUANE","FRANKLIN","BRAD","RON","ROLAND","ARNOLD","HARVEY","JARED","ERIK","DARRYL","NEIL","JAVIER","FERNANDO","CLINTON","TED","MATHEW","TYRONE","DARREN","LANCE","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","EVERETT","IAN","WALLACE","KEN","BOB","ALFREDO","ALBERTO","DAVE","IVAN","BYRON","ISAAC","MORRIS","CLIFTON","WILLARD","ROSS","ANDY","SALVADOR","KIRK","SERGIO","SETH","KENT","TERRANCE","EDUARDO","TERRENCE","ENRIQUE","WADE","STUART","FREDRICK","ARTURO","ALEJANDRO","NICK","LUTHER","WENDELL","JEREMIAH","JULIUS","OTIS","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","LYLE","MATT","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","NEAL","PABLO","LORENZO","OMAR","WILBUR","GRANT","HORACE","RODERICK","ABRAHAM","WILLIS","RICKEY","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","PRESTON","ALTON","ARCHIE","MARCO","WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","GERARDO","ED","DOMINIC","DELBERT","COLIN","GUILLERMO","EARNEST","LUCAS","BENNY","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON","SYLVESTER","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","CLARK","IRVING","BRYANT","OWEN","RUFUS","WOODROW","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","GILBERTO","CLINT","NICOLAS","ISMAEL","ORVILLE","ERVIN","DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","STEWART","DOYLE","DARREL","ROGELIO","TERENCE","SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY","DEXTER","BRADFORD","DARIN","AMOS","MOSES","IRVIN","SAUL","ROMAN","RANDAL","TIMMY","DARRIN","WINSTON","BRENDAN","ABEL","DOMINICK","BOYD","EMILIO","ELIJAH","DOMINGO","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY","REYNALDO","BRET","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","VICENTE","LAMONT","GARLAND","MILES","EFRAIN","HEATH","RODGER","HARLEY","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","STERLING","CHASE","GROVER","ELTON","CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE","BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO","BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","GREGORIO","BUDDY","XAVIER","KERMIT","ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD","KENDRICK","DARIUS","MOISES","FIDEL","THADDEUS","CLIFF","MARCEL","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE","JOESPH","THURMAN","NED","RUSTY","MONTY","FABIAN","REGGIE","MASON","GRAHAM","ISAIAH","VAUGHN","GUS","LOYD","DIEGO","ADOLPH","NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","WILEY","RIGOBERTO","ALPHONSO","TY","NOE","VERN","REED","JEFFERSON","ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN","FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DANTE","CLEMENT","COY","MAXWELL","JARVIS","BRUNO","ISSAC","DUDLEY","BROCK","SANFORD","CARMELO","BARNEY","NESTOR","STEFAN","DONNY","ART","LINWOOD","BEAU","WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","IRWIN","MERLIN","CHARLEY","MARCELINO","HARRIS","CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD","MARIANO","DANIAL","LANDON","DIRK","BRANDEN","ADAN","BUFORD","GERMAN","WILMER","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL","DALTON","MONROE","JOSUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","HOUSTON","ROBBY","LINCOLN","GENARO","BENNETT","OCTAVIO","CORNELL","HUNG","ARRON","ANTONY","HERSCHEL","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY","LON","FREEMAN","DUNCAN","KENNITH","CARMINE","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS","FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JARRETT","BROOKS","ABDUL","LUCIANO","SEYMOUR","EUGENIO","MOHAMMED","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","ALDO","RUBIN","ROYAL","MITCH","EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF","ELOY","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","BURT","JULES","GIL","ELISEO","AHMAD","NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","TREY","NORBERTO","NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT","BRENTON","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","ALEC","TANNER","JARRED","DONN","TAD","PRINCE","PORFIRIO","ODIS","LENARD","CHAUNCEY","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ORVAL","MAURO","ZACHARIAH","OLEN","ANIBAL","MILO","JED","DILLON","AMADO","NEWTON","LENNY","RICHIE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","MAC","JONAH","JERROLD","ROBT","HANK","RUPERT","ROLLAND","KENTON","DAMION","ANTONE","WALDO","FREDRIC","BRADLY","KIP","BURL","WALKER","TYREE","JEFFEREY","AHMED","WILLY","STANFORD","OREN","NOBLE","MOSHE","MIKEL","ENOCH","BRENDON","QUINTIN","JAMISON","FLORENCIO","DARRICK","TOBIAS","HASSAN","GIUSEPPE","DEMARCUS","CLETUS","TYRELL","LYNDON","KEENAN","WERNER","GERALDO","COLUMBUS","CHET","BERTRAM","MARKUS","HUEY","HILTON","DWAIN","DONTE","TYRON","OMER","ISAIAS","HIPOLITO","FERMIN","ADALBERTO","BO","BARRETT","TEODORO","MCKINLEY","MAXIMO","GARFIELD","RALEIGH","LAWERENCE","ABRAM","RASHAD","KING","EMMITT","DARON","SAMUAL","MIQUEL","EUSEBIO","DOMENIC","DARRON","BUSTER","WILBER","RENATO","JC","HOYT","HAYWOOD","EZEKIEL","CHAS","FLORENTINO","ELROY","CLEMENTE","ARDEN","NEVILLE","EDISON","DESHAWN","NATHANIAL","JORDON","DANILO","CLAUD","SHERWOOD","RAYMON","RAYFORD","CRISTOBAL","AMBROSE","TITUS","HYMAN","FELTON","EZEQUIEL","ERASMO","STANTON","LONNY","LEN","IKE","MILAN","LINO","JAROD","HERB","ANDREAS","WALTON","RHETT","PALMER","DOUGLASS","CORDELL","OSWALDO","ELLSWORTH","VIRGILIO","TONEY","NATHANAEL","DEL","BENEDICT","MOSE","JOHNSON","ISREAL","GARRET","FAUSTO","ASA","ARLEN","ZACK","WARNER","MODESTO","FRANCESCO","MANUAL","GAYLORD","GASTON","FILIBERTO","DEANGELO","MICHALE","GRANVILLE","WES","MALIK","ZACKARY","TUAN","ELDRIDGE","CRISTOPHER","CORTEZ","ANTIONE","MALCOM","LONG","KOREY","JOSPEH","COLTON","WAYLON","VON","HOSEA","SHAD","SANTO","RUDOLF","ROLF","REY","RENALDO","MARCELLUS","LUCIUS","KRISTOFER","BOYCE","BENTON","HAYDEN","HARLAND","ARNOLDO","RUEBEN","LEANDRO","KRAIG","JERRELL","JEROMY","HOBERT","CEDRICK","ARLIE","WINFORD","WALLY","LUIGI","KENETH","JACINTO","GRAIG","FRANKLYN","EDMUNDO","SID","PORTER","LEIF","JERAMY","BUCK","WILLIAN","VINCENZO","SHON","LYNWOOD","JERE","HAI","ELDEN","DORSEY","DARELL","BRODERICK","ALONSO" -------------------------------------------------------------------------------- /res/problem042.txt: -------------------------------------------------------------------------------- 1 | "A","ABILITY","ABLE","ABOUT","ABOVE","ABSENCE","ABSOLUTELY","ACADEMIC","ACCEPT","ACCESS","ACCIDENT","ACCOMPANY","ACCORDING","ACCOUNT","ACHIEVE","ACHIEVEMENT","ACID","ACQUIRE","ACROSS","ACT","ACTION","ACTIVE","ACTIVITY","ACTUAL","ACTUALLY","ADD","ADDITION","ADDITIONAL","ADDRESS","ADMINISTRATION","ADMIT","ADOPT","ADULT","ADVANCE","ADVANTAGE","ADVICE","ADVISE","AFFAIR","AFFECT","AFFORD","AFRAID","AFTER","AFTERNOON","AFTERWARDS","AGAIN","AGAINST","AGE","AGENCY","AGENT","AGO","AGREE","AGREEMENT","AHEAD","AID","AIM","AIR","AIRCRAFT","ALL","ALLOW","ALMOST","ALONE","ALONG","ALREADY","ALRIGHT","ALSO","ALTERNATIVE","ALTHOUGH","ALWAYS","AMONG","AMONGST","AMOUNT","AN","ANALYSIS","ANCIENT","AND","ANIMAL","ANNOUNCE","ANNUAL","ANOTHER","ANSWER","ANY","ANYBODY","ANYONE","ANYTHING","ANYWAY","APART","APPARENT","APPARENTLY","APPEAL","APPEAR","APPEARANCE","APPLICATION","APPLY","APPOINT","APPOINTMENT","APPROACH","APPROPRIATE","APPROVE","AREA","ARGUE","ARGUMENT","ARISE","ARM","ARMY","AROUND","ARRANGE","ARRANGEMENT","ARRIVE","ART","ARTICLE","ARTIST","AS","ASK","ASPECT","ASSEMBLY","ASSESS","ASSESSMENT","ASSET","ASSOCIATE","ASSOCIATION","ASSUME","ASSUMPTION","AT","ATMOSPHERE","ATTACH","ATTACK","ATTEMPT","ATTEND","ATTENTION","ATTITUDE","ATTRACT","ATTRACTIVE","AUDIENCE","AUTHOR","AUTHORITY","AVAILABLE","AVERAGE","AVOID","AWARD","AWARE","AWAY","AYE","BABY","BACK","BACKGROUND","BAD","BAG","BALANCE","BALL","BAND","BANK","BAR","BASE","BASIC","BASIS","BATTLE","BE","BEAR","BEAT","BEAUTIFUL","BECAUSE","BECOME","BED","BEDROOM","BEFORE","BEGIN","BEGINNING","BEHAVIOUR","BEHIND","BELIEF","BELIEVE","BELONG","BELOW","BENEATH","BENEFIT","BESIDE","BEST","BETTER","BETWEEN","BEYOND","BIG","BILL","BIND","BIRD","BIRTH","BIT","BLACK","BLOCK","BLOOD","BLOODY","BLOW","BLUE","BOARD","BOAT","BODY","BONE","BOOK","BORDER","BOTH","BOTTLE","BOTTOM","BOX","BOY","BRAIN","BRANCH","BREAK","BREATH","BRIDGE","BRIEF","BRIGHT","BRING","BROAD","BROTHER","BUDGET","BUILD","BUILDING","BURN","BUS","BUSINESS","BUSY","BUT","BUY","BY","CABINET","CALL","CAMPAIGN","CAN","CANDIDATE","CAPABLE","CAPACITY","CAPITAL","CAR","CARD","CARE","CAREER","CAREFUL","CAREFULLY","CARRY","CASE","CASH","CAT","CATCH","CATEGORY","CAUSE","CELL","CENTRAL","CENTRE","CENTURY","CERTAIN","CERTAINLY","CHAIN","CHAIR","CHAIRMAN","CHALLENGE","CHANCE","CHANGE","CHANNEL","CHAPTER","CHARACTER","CHARACTERISTIC","CHARGE","CHEAP","CHECK","CHEMICAL","CHIEF","CHILD","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUMSTANCE","CITIZEN","CITY","CIVIL","CLAIM","CLASS","CLEAN","CLEAR","CLEARLY","CLIENT","CLIMB","CLOSE","CLOSELY","CLOTHES","CLUB","COAL","CODE","COFFEE","COLD","COLLEAGUE","COLLECT","COLLECTION","COLLEGE","COLOUR","COMBINATION","COMBINE","COME","COMMENT","COMMERCIAL","COMMISSION","COMMIT","COMMITMENT","COMMITTEE","COMMON","COMMUNICATION","COMMUNITY","COMPANY","COMPARE","COMPARISON","COMPETITION","COMPLETE","COMPLETELY","COMPLEX","COMPONENT","COMPUTER","CONCENTRATE","CONCENTRATION","CONCEPT","CONCERN","CONCERNED","CONCLUDE","CONCLUSION","CONDITION","CONDUCT","CONFERENCE","CONFIDENCE","CONFIRM","CONFLICT","CONGRESS","CONNECT","CONNECTION","CONSEQUENCE","CONSERVATIVE","CONSIDER","CONSIDERABLE","CONSIDERATION","CONSIST","CONSTANT","CONSTRUCTION","CONSUMER","CONTACT","CONTAIN","CONTENT","CONTEXT","CONTINUE","CONTRACT","CONTRAST","CONTRIBUTE","CONTRIBUTION","CONTROL","CONVENTION","CONVERSATION","COPY","CORNER","CORPORATE","CORRECT","COS","COST","COULD","COUNCIL","COUNT","COUNTRY","COUNTY","COUPLE","COURSE","COURT","COVER","CREATE","CREATION","CREDIT","CRIME","CRIMINAL","CRISIS","CRITERION","CRITICAL","CRITICISM","CROSS","CROWD","CRY","CULTURAL","CULTURE","CUP","CURRENT","CURRENTLY","CURRICULUM","CUSTOMER","CUT","DAMAGE","DANGER","DANGEROUS","DARK","DATA","DATE","DAUGHTER","DAY","DEAD","DEAL","DEATH","DEBATE","DEBT","DECADE","DECIDE","DECISION","DECLARE","DEEP","DEFENCE","DEFENDANT","DEFINE","DEFINITION","DEGREE","DELIVER","DEMAND","DEMOCRATIC","DEMONSTRATE","DENY","DEPARTMENT","DEPEND","DEPUTY","DERIVE","DESCRIBE","DESCRIPTION","DESIGN","DESIRE","DESK","DESPITE","DESTROY","DETAIL","DETAILED","DETERMINE","DEVELOP","DEVELOPMENT","DEVICE","DIE","DIFFERENCE","DIFFERENT","DIFFICULT","DIFFICULTY","DINNER","DIRECT","DIRECTION","DIRECTLY","DIRECTOR","DISAPPEAR","DISCIPLINE","DISCOVER","DISCUSS","DISCUSSION","DISEASE","DISPLAY","DISTANCE","DISTINCTION","DISTRIBUTION","DISTRICT","DIVIDE","DIVISION","DO","DOCTOR","DOCUMENT","DOG","DOMESTIC","DOOR","DOUBLE","DOUBT","DOWN","DRAW","DRAWING","DREAM","DRESS","DRINK","DRIVE","DRIVER","DROP","DRUG","DRY","DUE","DURING","DUTY","EACH","EAR","EARLY","EARN","EARTH","EASILY","EAST","EASY","EAT","ECONOMIC","ECONOMY","EDGE","EDITOR","EDUCATION","EDUCATIONAL","EFFECT","EFFECTIVE","EFFECTIVELY","EFFORT","EGG","EITHER","ELDERLY","ELECTION","ELEMENT","ELSE","ELSEWHERE","EMERGE","EMPHASIS","EMPLOY","EMPLOYEE","EMPLOYER","EMPLOYMENT","EMPTY","ENABLE","ENCOURAGE","END","ENEMY","ENERGY","ENGINE","ENGINEERING","ENJOY","ENOUGH","ENSURE","ENTER","ENTERPRISE","ENTIRE","ENTIRELY","ENTITLE","ENTRY","ENVIRONMENT","ENVIRONMENTAL","EQUAL","EQUALLY","EQUIPMENT","ERROR","ESCAPE","ESPECIALLY","ESSENTIAL","ESTABLISH","ESTABLISHMENT","ESTATE","ESTIMATE","EVEN","EVENING","EVENT","EVENTUALLY","EVER","EVERY","EVERYBODY","EVERYONE","EVERYTHING","EVIDENCE","EXACTLY","EXAMINATION","EXAMINE","EXAMPLE","EXCELLENT","EXCEPT","EXCHANGE","EXECUTIVE","EXERCISE","EXHIBITION","EXIST","EXISTENCE","EXISTING","EXPECT","EXPECTATION","EXPENDITURE","EXPENSE","EXPENSIVE","EXPERIENCE","EXPERIMENT","EXPERT","EXPLAIN","EXPLANATION","EXPLORE","EXPRESS","EXPRESSION","EXTEND","EXTENT","EXTERNAL","EXTRA","EXTREMELY","EYE","FACE","FACILITY","FACT","FACTOR","FACTORY","FAIL","FAILURE","FAIR","FAIRLY","FAITH","FALL","FAMILIAR","FAMILY","FAMOUS","FAR","FARM","FARMER","FASHION","FAST","FATHER","FAVOUR","FEAR","FEATURE","FEE","FEEL","FEELING","FEMALE","FEW","FIELD","FIGHT","FIGURE","FILE","FILL","FILM","FINAL","FINALLY","FINANCE","FINANCIAL","FIND","FINDING","FINE","FINGER","FINISH","FIRE","FIRM","FIRST","FISH","FIT","FIX","FLAT","FLIGHT","FLOOR","FLOW","FLOWER","FLY","FOCUS","FOLLOW","FOLLOWING","FOOD","FOOT","FOOTBALL","FOR","FORCE","FOREIGN","FOREST","FORGET","FORM","FORMAL","FORMER","FORWARD","FOUNDATION","FREE","FREEDOM","FREQUENTLY","FRESH","FRIEND","FROM","FRONT","FRUIT","FUEL","FULL","FULLY","FUNCTION","FUND","FUNNY","FURTHER","FUTURE","GAIN","GAME","GARDEN","GAS","GATE","GATHER","GENERAL","GENERALLY","GENERATE","GENERATION","GENTLEMAN","GET","GIRL","GIVE","GLASS","GO","GOAL","GOD","GOLD","GOOD","GOVERNMENT","GRANT","GREAT","GREEN","GREY","GROUND","GROUP","GROW","GROWING","GROWTH","GUEST","GUIDE","GUN","HAIR","HALF","HALL","HAND","HANDLE","HANG","HAPPEN","HAPPY","HARD","HARDLY","HATE","HAVE","HE","HEAD","HEALTH","HEAR","HEART","HEAT","HEAVY","HELL","HELP","HENCE","HER","HERE","HERSELF","HIDE","HIGH","HIGHLY","HILL","HIM","HIMSELF","HIS","HISTORICAL","HISTORY","HIT","HOLD","HOLE","HOLIDAY","HOME","HOPE","HORSE","HOSPITAL","HOT","HOTEL","HOUR","HOUSE","HOUSEHOLD","HOUSING","HOW","HOWEVER","HUGE","HUMAN","HURT","HUSBAND","I","IDEA","IDENTIFY","IF","IGNORE","ILLUSTRATE","IMAGE","IMAGINE","IMMEDIATE","IMMEDIATELY","IMPACT","IMPLICATION","IMPLY","IMPORTANCE","IMPORTANT","IMPOSE","IMPOSSIBLE","IMPRESSION","IMPROVE","IMPROVEMENT","IN","INCIDENT","INCLUDE","INCLUDING","INCOME","INCREASE","INCREASED","INCREASINGLY","INDEED","INDEPENDENT","INDEX","INDICATE","INDIVIDUAL","INDUSTRIAL","INDUSTRY","INFLUENCE","INFORM","INFORMATION","INITIAL","INITIATIVE","INJURY","INSIDE","INSIST","INSTANCE","INSTEAD","INSTITUTE","INSTITUTION","INSTRUCTION","INSTRUMENT","INSURANCE","INTEND","INTENTION","INTEREST","INTERESTED","INTERESTING","INTERNAL","INTERNATIONAL","INTERPRETATION","INTERVIEW","INTO","INTRODUCE","INTRODUCTION","INVESTIGATE","INVESTIGATION","INVESTMENT","INVITE","INVOLVE","IRON","IS","ISLAND","ISSUE","IT","ITEM","ITS","ITSELF","JOB","JOIN","JOINT","JOURNEY","JUDGE","JUMP","JUST","JUSTICE","KEEP","KEY","KID","KILL","KIND","KING","KITCHEN","KNEE","KNOW","KNOWLEDGE","LABOUR","LACK","LADY","LAND","LANGUAGE","LARGE","LARGELY","LAST","LATE","LATER","LATTER","LAUGH","LAUNCH","LAW","LAWYER","LAY","LEAD","LEADER","LEADERSHIP","LEADING","LEAF","LEAGUE","LEAN","LEARN","LEAST","LEAVE","LEFT","LEG","LEGAL","LEGISLATION","LENGTH","LESS","LET","LETTER","LEVEL","LIABILITY","LIBERAL","LIBRARY","LIE","LIFE","LIFT","LIGHT","LIKE","LIKELY","LIMIT","LIMITED","LINE","LINK","LIP","LIST","LISTEN","LITERATURE","LITTLE","LIVE","LIVING","LOAN","LOCAL","LOCATION","LONG","LOOK","LORD","LOSE","LOSS","LOT","LOVE","LOVELY","LOW","LUNCH","MACHINE","MAGAZINE","MAIN","MAINLY","MAINTAIN","MAJOR","MAJORITY","MAKE","MALE","MAN","MANAGE","MANAGEMENT","MANAGER","MANNER","MANY","MAP","MARK","MARKET","MARRIAGE","MARRIED","MARRY","MASS","MASTER","MATCH","MATERIAL","MATTER","MAY","MAYBE","ME","MEAL","MEAN","MEANING","MEANS","MEANWHILE","MEASURE","MECHANISM","MEDIA","MEDICAL","MEET","MEETING","MEMBER","MEMBERSHIP","MEMORY","MENTAL","MENTION","MERELY","MESSAGE","METAL","METHOD","MIDDLE","MIGHT","MILE","MILITARY","MILK","MIND","MINE","MINISTER","MINISTRY","MINUTE","MISS","MISTAKE","MODEL","MODERN","MODULE","MOMENT","MONEY","MONTH","MORE","MORNING","MOST","MOTHER","MOTION","MOTOR","MOUNTAIN","MOUTH","MOVE","MOVEMENT","MUCH","MURDER","MUSEUM","MUSIC","MUST","MY","MYSELF","NAME","NARROW","NATION","NATIONAL","NATURAL","NATURE","NEAR","NEARLY","NECESSARILY","NECESSARY","NECK","NEED","NEGOTIATION","NEIGHBOUR","NEITHER","NETWORK","NEVER","NEVERTHELESS","NEW","NEWS","NEWSPAPER","NEXT","NICE","NIGHT","NO","NOBODY","NOD","NOISE","NONE","NOR","NORMAL","NORMALLY","NORTH","NORTHERN","NOSE","NOT","NOTE","NOTHING","NOTICE","NOTION","NOW","NUCLEAR","NUMBER","NURSE","OBJECT","OBJECTIVE","OBSERVATION","OBSERVE","OBTAIN","OBVIOUS","OBVIOUSLY","OCCASION","OCCUR","ODD","OF","OFF","OFFENCE","OFFER","OFFICE","OFFICER","OFFICIAL","OFTEN","OIL","OKAY","OLD","ON","ONCE","ONE","ONLY","ONTO","OPEN","OPERATE","OPERATION","OPINION","OPPORTUNITY","OPPOSITION","OPTION","OR","ORDER","ORDINARY","ORGANISATION","ORGANISE","ORGANIZATION","ORIGIN","ORIGINAL","OTHER","OTHERWISE","OUGHT","OUR","OURSELVES","OUT","OUTCOME","OUTPUT","OUTSIDE","OVER","OVERALL","OWN","OWNER","PACKAGE","PAGE","PAIN","PAINT","PAINTING","PAIR","PANEL","PAPER","PARENT","PARK","PARLIAMENT","PART","PARTICULAR","PARTICULARLY","PARTLY","PARTNER","PARTY","PASS","PASSAGE","PAST","PATH","PATIENT","PATTERN","PAY","PAYMENT","PEACE","PENSION","PEOPLE","PER","PERCENT","PERFECT","PERFORM","PERFORMANCE","PERHAPS","PERIOD","PERMANENT","PERSON","PERSONAL","PERSUADE","PHASE","PHONE","PHOTOGRAPH","PHYSICAL","PICK","PICTURE","PIECE","PLACE","PLAN","PLANNING","PLANT","PLASTIC","PLATE","PLAY","PLAYER","PLEASE","PLEASURE","PLENTY","PLUS","POCKET","POINT","POLICE","POLICY","POLITICAL","POLITICS","POOL","POOR","POPULAR","POPULATION","POSITION","POSITIVE","POSSIBILITY","POSSIBLE","POSSIBLY","POST","POTENTIAL","POUND","POWER","POWERFUL","PRACTICAL","PRACTICE","PREFER","PREPARE","PRESENCE","PRESENT","PRESIDENT","PRESS","PRESSURE","PRETTY","PREVENT","PREVIOUS","PREVIOUSLY","PRICE","PRIMARY","PRIME","PRINCIPLE","PRIORITY","PRISON","PRISONER","PRIVATE","PROBABLY","PROBLEM","PROCEDURE","PROCESS","PRODUCE","PRODUCT","PRODUCTION","PROFESSIONAL","PROFIT","PROGRAM","PROGRAMME","PROGRESS","PROJECT","PROMISE","PROMOTE","PROPER","PROPERLY","PROPERTY","PROPORTION","PROPOSE","PROPOSAL","PROSPECT","PROTECT","PROTECTION","PROVE","PROVIDE","PROVIDED","PROVISION","PUB","PUBLIC","PUBLICATION","PUBLISH","PULL","PUPIL","PURPOSE","PUSH","PUT","QUALITY","QUARTER","QUESTION","QUICK","QUICKLY","QUIET","QUITE","RACE","RADIO","RAILWAY","RAIN","RAISE","RANGE","RAPIDLY","RARE","RATE","RATHER","REACH","REACTION","READ","READER","READING","READY","REAL","REALISE","REALITY","REALIZE","REALLY","REASON","REASONABLE","RECALL","RECEIVE","RECENT","RECENTLY","RECOGNISE","RECOGNITION","RECOGNIZE","RECOMMEND","RECORD","RECOVER","RED","REDUCE","REDUCTION","REFER","REFERENCE","REFLECT","REFORM","REFUSE","REGARD","REGION","REGIONAL","REGULAR","REGULATION","REJECT","RELATE","RELATION","RELATIONSHIP","RELATIVE","RELATIVELY","RELEASE","RELEVANT","RELIEF","RELIGION","RELIGIOUS","RELY","REMAIN","REMEMBER","REMIND","REMOVE","REPEAT","REPLACE","REPLY","REPORT","REPRESENT","REPRESENTATION","REPRESENTATIVE","REQUEST","REQUIRE","REQUIREMENT","RESEARCH","RESOURCE","RESPECT","RESPOND","RESPONSE","RESPONSIBILITY","RESPONSIBLE","REST","RESTAURANT","RESULT","RETAIN","RETURN","REVEAL","REVENUE","REVIEW","REVOLUTION","RICH","RIDE","RIGHT","RING","RISE","RISK","RIVER","ROAD","ROCK","ROLE","ROLL","ROOF","ROOM","ROUND","ROUTE","ROW","ROYAL","RULE","RUN","RURAL","SAFE","SAFETY","SALE","SAME","SAMPLE","SATISFY","SAVE","SAY","SCALE","SCENE","SCHEME","SCHOOL","SCIENCE","SCIENTIFIC","SCIENTIST","SCORE","SCREEN","SEA","SEARCH","SEASON","SEAT","SECOND","SECONDARY","SECRETARY","SECTION","SECTOR","SECURE","SECURITY","SEE","SEEK","SEEM","SELECT","SELECTION","SELL","SEND","SENIOR","SENSE","SENTENCE","SEPARATE","SEQUENCE","SERIES","SERIOUS","SERIOUSLY","SERVANT","SERVE","SERVICE","SESSION","SET","SETTLE","SETTLEMENT","SEVERAL","SEVERE","SEX","SEXUAL","SHAKE","SHALL","SHAPE","SHARE","SHE","SHEET","SHIP","SHOE","SHOOT","SHOP","SHORT","SHOT","SHOULD","SHOULDER","SHOUT","SHOW","SHUT","SIDE","SIGHT","SIGN","SIGNAL","SIGNIFICANCE","SIGNIFICANT","SILENCE","SIMILAR","SIMPLE","SIMPLY","SINCE","SING","SINGLE","SIR","SISTER","SIT","SITE","SITUATION","SIZE","SKILL","SKIN","SKY","SLEEP","SLIGHTLY","SLIP","SLOW","SLOWLY","SMALL","SMILE","SO","SOCIAL","SOCIETY","SOFT","SOFTWARE","SOIL","SOLDIER","SOLICITOR","SOLUTION","SOME","SOMEBODY","SOMEONE","SOMETHING","SOMETIMES","SOMEWHAT","SOMEWHERE","SON","SONG","SOON","SORRY","SORT","SOUND","SOURCE","SOUTH","SOUTHERN","SPACE","SPEAK","SPEAKER","SPECIAL","SPECIES","SPECIFIC","SPEECH","SPEED","SPEND","SPIRIT","SPORT","SPOT","SPREAD","SPRING","STAFF","STAGE","STAND","STANDARD","STAR","START","STATE","STATEMENT","STATION","STATUS","STAY","STEAL","STEP","STICK","STILL","STOCK","STONE","STOP","STORE","STORY","STRAIGHT","STRANGE","STRATEGY","STREET","STRENGTH","STRIKE","STRONG","STRONGLY","STRUCTURE","STUDENT","STUDIO","STUDY","STUFF","STYLE","SUBJECT","SUBSTANTIAL","SUCCEED","SUCCESS","SUCCESSFUL","SUCH","SUDDENLY","SUFFER","SUFFICIENT","SUGGEST","SUGGESTION","SUITABLE","SUM","SUMMER","SUN","SUPPLY","SUPPORT","SUPPOSE","SURE","SURELY","SURFACE","SURPRISE","SURROUND","SURVEY","SURVIVE","SWITCH","SYSTEM","TABLE","TAKE","TALK","TALL","TAPE","TARGET","TASK","TAX","TEA","TEACH","TEACHER","TEACHING","TEAM","TEAR","TECHNICAL","TECHNIQUE","TECHNOLOGY","TELEPHONE","TELEVISION","TELL","TEMPERATURE","TEND","TERM","TERMS","TERRIBLE","TEST","TEXT","THAN","THANK","THANKS","THAT","THE","THEATRE","THEIR","THEM","THEME","THEMSELVES","THEN","THEORY","THERE","THEREFORE","THESE","THEY","THIN","THING","THINK","THIS","THOSE","THOUGH","THOUGHT","THREAT","THREATEN","THROUGH","THROUGHOUT","THROW","THUS","TICKET","TIME","TINY","TITLE","TO","TODAY","TOGETHER","TOMORROW","TONE","TONIGHT","TOO","TOOL","TOOTH","TOP","TOTAL","TOTALLY","TOUCH","TOUR","TOWARDS","TOWN","TRACK","TRADE","TRADITION","TRADITIONAL","TRAFFIC","TRAIN","TRAINING","TRANSFER","TRANSPORT","TRAVEL","TREAT","TREATMENT","TREATY","TREE","TREND","TRIAL","TRIP","TROOP","TROUBLE","TRUE","TRUST","TRUTH","TRY","TURN","TWICE","TYPE","TYPICAL","UNABLE","UNDER","UNDERSTAND","UNDERSTANDING","UNDERTAKE","UNEMPLOYMENT","UNFORTUNATELY","UNION","UNIT","UNITED","UNIVERSITY","UNLESS","UNLIKELY","UNTIL","UP","UPON","UPPER","URBAN","US","USE","USED","USEFUL","USER","USUAL","USUALLY","VALUE","VARIATION","VARIETY","VARIOUS","VARY","VAST","VEHICLE","VERSION","VERY","VIA","VICTIM","VICTORY","VIDEO","VIEW","VILLAGE","VIOLENCE","VISION","VISIT","VISITOR","VITAL","VOICE","VOLUME","VOTE","WAGE","WAIT","WALK","WALL","WANT","WAR","WARM","WARN","WASH","WATCH","WATER","WAVE","WAY","WE","WEAK","WEAPON","WEAR","WEATHER","WEEK","WEEKEND","WEIGHT","WELCOME","WELFARE","WELL","WEST","WESTERN","WHAT","WHATEVER","WHEN","WHERE","WHEREAS","WHETHER","WHICH","WHILE","WHILST","WHITE","WHO","WHOLE","WHOM","WHOSE","WHY","WIDE","WIDELY","WIFE","WILD","WILL","WIN","WIND","WINDOW","WINE","WING","WINNER","WINTER","WISH","WITH","WITHDRAW","WITHIN","WITHOUT","WOMAN","WONDER","WONDERFUL","WOOD","WORD","WORK","WORKER","WORKING","WORKS","WORLD","WORRY","WORTH","WOULD","WRITE","WRITER","WRITING","WRONG","YARD","YEAH","YEAR","YES","YESTERDAY","YET","YOU","YOUNG","YOUR","YOURSELF","YOUTH" -------------------------------------------------------------------------------- /res/problem059.txt: -------------------------------------------------------------------------------- 1 | 79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,71,89,68,32,0,0,71,28,1,9,27,68,45,0,12,9,79,16,15,10,68,37,14,20,19,6,23,19,79,83,71,27,11,71,27,1,11,3,68,2,25,1,21,22,11,9,10,68,6,13,11,18,27,68,19,7,1,71,3,13,0,7,16,71,28,11,71,27,12,6,27,68,2,25,1,21,22,11,9,10,68,10,6,3,15,27,68,5,10,8,14,10,18,2,79,6,2,12,5,18,28,1,71,0,2,71,7,13,20,79,16,2,28,16,14,2,11,9,22,74,71,87,68,45,0,12,9,79,12,14,2,23,2,3,2,71,24,5,20,79,10,8,27,68,19,7,1,71,3,13,0,7,16,92,79,12,2,79,19,6,28,68,8,1,8,30,79,5,71,24,13,19,1,1,20,28,68,19,0,68,19,7,1,71,3,13,0,7,16,73,79,93,71,59,12,2,79,11,9,10,68,16,7,11,71,6,23,71,27,12,2,79,16,21,26,1,71,3,13,0,7,16,75,79,19,15,0,68,0,6,18,2,28,68,11,6,3,15,27,68,19,0,68,2,25,1,21,22,11,9,10,72,71,24,5,20,79,3,8,6,10,0,79,16,8,79,7,8,2,1,71,6,10,19,0,68,19,7,1,71,24,11,21,3,0,73,79,85,87,79,38,18,27,68,6,3,16,15,0,17,0,7,68,19,7,1,71,24,11,21,3,0,71,24,5,20,79,9,6,11,1,71,27,12,21,0,17,0,7,68,15,6,9,75,79,16,15,10,68,16,0,22,11,11,68,3,6,0,9,72,16,71,29,1,4,0,3,9,6,30,2,79,12,14,2,68,16,7,1,9,79,12,2,79,7,6,2,1,73,79,85,86,79,33,17,10,10,71,6,10,71,7,13,20,79,11,16,1,68,11,14,10,3,79,5,9,11,68,6,2,11,9,8,68,15,6,23,71,0,19,9,79,20,2,0,20,11,10,72,71,7,1,71,24,5,20,79,10,8,27,68,6,12,7,2,31,16,2,11,74,71,94,86,71,45,17,19,79,16,8,79,5,11,3,68,16,7,11,71,13,1,11,6,1,17,10,0,71,7,13,10,79,5,9,11,68,6,12,7,2,31,16,2,11,68,15,6,9,75,79,12,2,79,3,6,25,1,71,27,12,2,79,22,14,8,12,19,79,16,8,79,6,2,12,11,10,10,68,4,7,13,11,11,22,2,1,68,8,9,68,32,0,0,73,79,85,84,79,48,15,10,29,71,14,22,2,79,22,2,13,11,21,1,69,71,59,12,14,28,68,14,28,68,9,0,16,71,14,68,23,7,29,20,6,7,6,3,68,5,6,22,19,7,68,21,10,23,18,3,16,14,1,3,71,9,22,8,2,68,15,26,9,6,1,68,23,14,23,20,6,11,9,79,11,21,79,20,11,14,10,75,79,16,15,6,23,71,29,1,5,6,22,19,7,68,4,0,9,2,28,68,1,29,11,10,79,35,8,11,74,86,91,68,52,0,68,19,7,1,71,56,11,21,11,68,5,10,7,6,2,1,71,7,17,10,14,10,71,14,10,3,79,8,14,25,1,3,79,12,2,29,1,71,0,10,71,10,5,21,27,12,71,14,9,8,1,3,71,26,23,73,79,44,2,79,19,6,28,68,1,26,8,11,79,11,1,79,17,9,9,5,14,3,13,9,8,68,11,0,18,2,79,5,9,11,68,1,14,13,19,7,2,18,3,10,2,28,23,73,79,37,9,11,68,16,10,68,15,14,18,2,79,23,2,10,10,71,7,13,20,79,3,11,0,22,30,67,68,19,7,1,71,8,8,8,29,29,71,0,2,71,27,12,2,79,11,9,3,29,71,60,11,9,79,11,1,79,16,15,10,68,33,14,16,15,10,22,73 2 | -------------------------------------------------------------------------------- /res/problem067.txt: -------------------------------------------------------------------------------- 1 | 59 2 | 73 41 3 | 52 40 09 4 | 26 53 06 34 5 | 10 51 87 86 81 6 | 61 95 66 57 25 68 7 | 90 81 80 38 92 67 73 8 | 30 28 51 76 81 18 75 44 9 | 84 14 95 87 62 81 17 78 58 10 | 21 46 71 58 02 79 62 39 31 09 11 | 56 34 35 53 78 31 81 18 90 93 15 12 | 78 53 04 21 84 93 32 13 97 11 37 51 13 | 45 03 81 79 05 18 78 86 13 30 63 99 95 14 | 39 87 96 28 03 38 42 17 82 87 58 07 22 57 15 | 06 17 51 17 07 93 09 07 75 97 95 78 87 08 53 16 | 67 66 59 60 88 99 94 65 55 77 55 34 27 53 78 28 17 | 76 40 41 04 87 16 09 42 75 69 23 97 30 60 10 79 87 18 | 12 10 44 26 21 36 32 84 98 60 13 12 36 16 63 31 91 35 19 | 70 39 06 05 55 27 38 48 28 22 34 35 62 62 15 14 94 89 86 20 | 66 56 68 84 96 21 34 34 34 81 62 40 65 54 62 05 98 03 02 60 21 | 38 89 46 37 99 54 34 53 36 14 70 26 02 90 45 13 31 61 83 73 47 22 | 36 10 63 96 60 49 41 05 37 42 14 58 84 93 96 17 09 43 05 43 06 59 23 | 66 57 87 57 61 28 37 51 84 73 79 15 39 95 88 87 43 39 11 86 77 74 18 24 | 54 42 05 79 30 49 99 73 46 37 50 02 45 09 54 52 27 95 27 65 19 45 26 45 25 | 71 39 17 78 76 29 52 90 18 99 78 19 35 62 71 19 23 65 93 85 49 33 75 09 02 26 | 33 24 47 61 60 55 32 88 57 55 91 54 46 57 07 77 98 52 80 99 24 25 46 78 79 05 27 | 92 09 13 55 10 67 26 78 76 82 63 49 51 31 24 68 05 57 07 54 69 21 67 43 17 63 12 28 | 24 59 06 08 98 74 66 26 61 60 13 03 09 09 24 30 71 08 88 70 72 70 29 90 11 82 41 34 29 | 66 82 67 04 36 60 92 77 91 85 62 49 59 61 30 90 29 94 26 41 89 04 53 22 83 41 09 74 90 30 | 48 28 26 37 28 52 77 26 51 32 18 98 79 36 62 13 17 08 19 54 89 29 73 68 42 14 08 16 70 37 31 | 37 60 69 70 72 71 09 59 13 60 38 13 57 36 09 30 43 89 30 39 15 02 44 73 05 73 26 63 56 86 12 32 | 55 55 85 50 62 99 84 77 28 85 03 21 27 22 19 26 82 69 54 04 13 07 85 14 01 15 70 59 89 95 10 19 33 | 04 09 31 92 91 38 92 86 98 75 21 05 64 42 62 84 36 20 73 42 21 23 22 51 51 79 25 45 85 53 03 43 22 34 | 75 63 02 49 14 12 89 14 60 78 92 16 44 82 38 30 72 11 46 52 90 27 08 65 78 03 85 41 57 79 39 52 33 48 35 | 78 27 56 56 39 13 19 43 86 72 58 95 39 07 04 34 21 98 39 15 39 84 89 69 84 46 37 57 59 35 59 50 26 15 93 36 | 42 89 36 27 78 91 24 11 17 41 05 94 07 69 51 96 03 96 47 90 90 45 91 20 50 56 10 32 36 49 04 53 85 92 25 65 37 | 52 09 61 30 61 97 66 21 96 92 98 90 06 34 96 60 32 69 68 33 75 84 18 31 71 50 84 63 03 03 19 11 28 42 75 45 45 38 | 61 31 61 68 96 34 49 39 05 71 76 59 62 67 06 47 96 99 34 21 32 47 52 07 71 60 42 72 94 56 82 83 84 40 94 87 82 46 39 | 01 20 60 14 17 38 26 78 66 81 45 95 18 51 98 81 48 16 53 88 37 52 69 95 72 93 22 34 98 20 54 27 73 61 56 63 60 34 63 40 | 93 42 94 83 47 61 27 51 79 79 45 01 44 73 31 70 83 42 88 25 53 51 30 15 65 94 80 44 61 84 12 77 02 62 02 65 94 42 14 94 41 | 32 73 09 67 68 29 74 98 10 19 85 48 38 31 85 67 53 93 93 77 47 67 39 72 94 53 18 43 77 40 78 32 29 59 24 06 02 83 50 60 66 42 | 32 01 44 30 16 51 15 81 98 15 10 62 86 79 50 62 45 60 70 38 31 85 65 61 64 06 69 84 14 22 56 43 09 48 66 69 83 91 60 40 36 61 43 | 92 48 22 99 15 95 64 43 01 16 94 02 99 19 17 69 11 58 97 56 89 31 77 45 67 96 12 73 08 20 36 47 81 44 50 64 68 85 40 81 85 52 09 44 | 91 35 92 45 32 84 62 15 19 64 21 66 06 01 52 80 62 59 12 25 88 28 91 50 40 16 22 99 92 79 87 51 21 77 74 77 07 42 38 42 74 83 02 05 45 | 46 19 77 66 24 18 05 32 02 84 31 99 92 58 96 72 91 36 62 99 55 29 53 42 12 37 26 58 89 50 66 19 82 75 12 48 24 87 91 85 02 07 03 76 86 46 | 99 98 84 93 07 17 33 61 92 20 66 60 24 66 40 30 67 05 37 29 24 96 03 27 70 62 13 04 45 47 59 88 43 20 66 15 46 92 30 04 71 66 78 70 53 99 47 | 67 60 38 06 88 04 17 72 10 99 71 07 42 25 54 05 26 64 91 50 45 71 06 30 67 48 69 82 08 56 80 67 18 46 66 63 01 20 08 80 47 07 91 16 03 79 87 48 | 18 54 78 49 80 48 77 40 68 23 60 88 58 80 33 57 11 69 55 53 64 02 94 49 60 92 16 35 81 21 82 96 25 24 96 18 02 05 49 03 50 77 06 32 84 27 18 38 49 | 68 01 50 04 03 21 42 94 53 24 89 05 92 26 52 36 68 11 85 01 04 42 02 45 15 06 50 04 53 73 25 74 81 88 98 21 67 84 79 97 99 20 95 04 40 46 02 58 87 50 | 94 10 02 78 88 52 21 03 88 60 06 53 49 71 20 91 12 65 07 49 21 22 11 41 58 99 36 16 09 48 17 24 52 36 23 15 72 16 84 56 02 99 43 76 81 71 29 39 49 17 51 | 64 39 59 84 86 16 17 66 03 09 43 06 64 18 63 29 68 06 23 07 87 14 26 35 17 12 98 41 53 64 78 18 98 27 28 84 80 67 75 62 10 11 76 90 54 10 05 54 41 39 66 52 | 43 83 18 37 32 31 52 29 95 47 08 76 35 11 04 53 35 43 34 10 52 57 12 36 20 39 40 55 78 44 07 31 38 26 08 15 56 88 86 01 52 62 10 24 32 05 60 65 53 28 57 99 53 | 03 50 03 52 07 73 49 92 66 80 01 46 08 67 25 36 73 93 07 42 25 53 13 96 76 83 87 90 54 89 78 22 78 91 73 51 69 09 79 94 83 53 09 40 69 62 10 79 49 47 03 81 30 54 | 71 54 73 33 51 76 59 54 79 37 56 45 84 17 62 21 98 69 41 95 65 24 39 37 62 03 24 48 54 64 46 82 71 78 33 67 09 16 96 68 52 74 79 68 32 21 13 78 96 60 09 69 20 36 55 | 73 26 21 44 46 38 17 83 65 98 07 23 52 46 61 97 33 13 60 31 70 15 36 77 31 58 56 93 75 68 21 36 69 53 90 75 25 82 39 50 65 94 29 30 11 33 11 13 96 02 56 47 07 49 02 56 | 76 46 73 30 10 20 60 70 14 56 34 26 37 39 48 24 55 76 84 91 39 86 95 61 50 14 53 93 64 67 37 31 10 84 42 70 48 20 10 72 60 61 84 79 69 65 99 73 89 25 85 48 92 56 97 16 57 | 03 14 80 27 22 30 44 27 67 75 79 32 51 54 81 29 65 14 19 04 13 82 04 91 43 40 12 52 29 99 07 76 60 25 01 07 61 71 37 92 40 47 99 66 57 01 43 44 22 40 53 53 09 69 26 81 07 58 | 49 80 56 90 93 87 47 13 75 28 87 23 72 79 32 18 27 20 28 10 37 59 21 18 70 04 79 96 03 31 45 71 81 06 14 18 17 05 31 50 92 79 23 47 09 39 47 91 43 54 69 47 42 95 62 46 32 85 59 | 37 18 62 85 87 28 64 05 77 51 47 26 30 65 05 70 65 75 59 80 42 52 25 20 44 10 92 17 71 95 52 14 77 13 24 55 11 65 26 91 01 30 63 15 49 48 41 17 67 47 03 68 20 90 98 32 04 40 68 60 | 90 51 58 60 06 55 23 68 05 19 76 94 82 36 96 43 38 90 87 28 33 83 05 17 70 83 96 93 06 04 78 47 80 06 23 84 75 23 87 72 99 14 50 98 92 38 90 64 61 58 76 94 36 66 87 80 51 35 61 38 61 | 57 95 64 06 53 36 82 51 40 33 47 14 07 98 78 65 39 58 53 06 50 53 04 69 40 68 36 69 75 78 75 60 03 32 39 24 74 47 26 90 13 40 44 71 90 76 51 24 36 50 25 45 70 80 61 80 61 43 90 64 11 62 | 18 29 86 56 68 42 79 10 42 44 30 12 96 18 23 18 52 59 02 99 67 46 60 86 43 38 55 17 44 93 42 21 55 14 47 34 55 16 49 24 23 29 96 51 55 10 46 53 27 92 27 46 63 57 30 65 43 27 21 20 24 83 63 | 81 72 93 19 69 52 48 01 13 83 92 69 20 48 69 59 20 62 05 42 28 89 90 99 32 72 84 17 08 87 36 03 60 31 36 36 81 26 97 36 48 54 56 56 27 16 91 08 23 11 87 99 33 47 02 14 44 73 70 99 43 35 33 64 | 90 56 61 86 56 12 70 59 63 32 01 15 81 47 71 76 95 32 65 80 54 70 34 51 40 45 33 04 64 55 78 68 88 47 31 47 68 87 03 84 23 44 89 72 35 08 31 76 63 26 90 85 96 67 65 91 19 14 17 86 04 71 32 95 65 | 37 13 04 22 64 37 37 28 56 62 86 33 07 37 10 44 52 82 52 06 19 52 57 75 90 26 91 24 06 21 14 67 76 30 46 14 35 89 89 41 03 64 56 97 87 63 22 34 03 79 17 45 11 53 25 56 96 61 23 18 63 31 37 37 47 66 | 77 23 26 70 72 76 77 04 28 64 71 69 14 85 96 54 95 48 06 62 99 83 86 77 97 75 71 66 30 19 57 90 33 01 60 61 14 12 90 99 32 77 56 41 18 14 87 49 10 14 90 64 18 50 21 74 14 16 88 05 45 73 82 47 74 44 67 | 22 97 41 13 34 31 54 61 56 94 03 24 59 27 98 77 04 09 37 40 12 26 87 09 71 70 07 18 64 57 80 21 12 71 83 94 60 39 73 79 73 19 97 32 64 29 41 07 48 84 85 67 12 74 95 20 24 52 41 67 56 61 29 93 35 72 69 68 | 72 23 63 66 01 11 07 30 52 56 95 16 65 26 83 90 50 74 60 18 16 48 43 77 37 11 99 98 30 94 91 26 62 73 45 12 87 73 47 27 01 88 66 99 21 41 95 80 02 53 23 32 61 48 32 43 43 83 14 66 95 91 19 81 80 67 25 88 69 | 08 62 32 18 92 14 83 71 37 96 11 83 39 99 05 16 23 27 10 67 02 25 44 11 55 31 46 64 41 56 44 74 26 81 51 31 45 85 87 09 81 95 22 28 76 69 46 48 64 87 67 76 27 89 31 11 74 16 62 03 60 94 42 47 09 34 94 93 72 70 | 56 18 90 18 42 17 42 32 14 86 06 53 33 95 99 35 29 15 44 20 49 59 25 54 34 59 84 21 23 54 35 90 78 16 93 13 37 88 54 19 86 67 68 55 66 84 65 42 98 37 87 56 33 28 58 38 28 38 66 27 52 21 81 15 08 22 97 32 85 27 71 | 91 53 40 28 13 34 91 25 01 63 50 37 22 49 71 58 32 28 30 18 68 94 23 83 63 62 94 76 80 41 90 22 82 52 29 12 18 56 10 08 35 14 37 57 23 65 67 40 72 39 93 39 70 89 40 34 07 46 94 22 20 05 53 64 56 30 05 56 61 88 27 72 | 23 95 11 12 37 69 68 24 66 10 87 70 43 50 75 07 62 41 83 58 95 93 89 79 45 39 02 22 05 22 95 43 62 11 68 29 17 40 26 44 25 71 87 16 70 85 19 25 59 94 90 41 41 80 61 70 55 60 84 33 95 76 42 63 15 09 03 40 38 12 03 32 73 | 09 84 56 80 61 55 85 97 16 94 82 94 98 57 84 30 84 48 93 90 71 05 95 90 73 17 30 98 40 64 65 89 07 79 09 19 56 36 42 30 23 69 73 72 07 05 27 61 24 31 43 48 71 84 21 28 26 65 65 59 65 74 77 20 10 81 61 84 95 08 52 23 70 74 | 47 81 28 09 98 51 67 64 35 51 59 36 92 82 77 65 80 24 72 53 22 07 27 10 21 28 30 22 48 82 80 48 56 20 14 43 18 25 50 95 90 31 77 08 09 48 44 80 90 22 93 45 82 17 13 96 25 26 08 73 34 99 06 49 24 06 83 51 40 14 15 10 25 01 75 | 54 25 10 81 30 64 24 74 75 80 36 75 82 60 22 69 72 91 45 67 03 62 79 54 89 74 44 83 64 96 66 73 44 30 74 50 37 05 09 97 70 01 60 46 37 91 39 75 75 18 58 52 72 78 51 81 86 52 08 97 01 46 43 66 98 62 81 18 70 93 73 08 32 46 34 76 | 96 80 82 07 59 71 92 53 19 20 88 66 03 26 26 10 24 27 50 82 94 73 63 08 51 33 22 45 19 13 58 33 90 15 22 50 36 13 55 06 35 47 82 52 33 61 36 27 28 46 98 14 73 20 73 32 16 26 80 53 47 66 76 38 94 45 02 01 22 52 47 96 64 58 52 39 77 | 88 46 23 39 74 63 81 64 20 90 33 33 76 55 58 26 10 46 42 26 74 74 12 83 32 43 09 02 73 55 86 54 85 34 28 23 29 79 91 62 47 41 82 87 99 22 48 90 20 05 96 75 95 04 43 28 81 39 81 01 28 42 78 25 39 77 90 57 58 98 17 36 73 22 63 74 51 78 | 29 39 74 94 95 78 64 24 38 86 63 87 93 06 70 92 22 16 80 64 29 52 20 27 23 50 14 13 87 15 72 96 81 22 08 49 72 30 70 24 79 31 16 64 59 21 89 34 96 91 48 76 43 53 88 01 57 80 23 81 90 79 58 01 80 87 17 99 86 90 72 63 32 69 14 28 88 69 79 | 37 17 71 95 56 93 71 35 43 45 04 98 92 94 84 96 11 30 31 27 31 60 92 03 48 05 98 91 86 94 35 90 90 08 48 19 33 28 68 37 59 26 65 96 50 68 22 07 09 49 34 31 77 49 43 06 75 17 81 87 61 79 52 26 27 72 29 50 07 98 86 01 17 10 46 64 24 18 56 80 | 51 30 25 94 88 85 79 91 40 33 63 84 49 67 98 92 15 26 75 19 82 05 18 78 65 93 61 48 91 43 59 41 70 51 22 15 92 81 67 91 46 98 11 11 65 31 66 10 98 65 83 21 05 56 05 98 73 67 46 74 69 34 08 30 05 52 07 98 32 95 30 94 65 50 24 63 28 81 99 57 81 | 19 23 61 36 09 89 71 98 65 17 30 29 89 26 79 74 94 11 44 48 97 54 81 55 39 66 69 45 28 47 13 86 15 76 74 70 84 32 36 33 79 20 78 14 41 47 89 28 81 05 99 66 81 86 38 26 06 25 13 60 54 55 23 53 27 05 89 25 23 11 13 54 59 54 56 34 16 24 53 44 06 82 | 13 40 57 72 21 15 60 08 04 19 11 98 34 45 09 97 86 71 03 15 56 19 15 44 97 31 90 04 87 87 76 08 12 30 24 62 84 28 12 85 82 53 99 52 13 94 06 65 97 86 09 50 94 68 69 74 30 67 87 94 63 07 78 27 80 36 69 41 06 92 32 78 37 82 30 05 18 87 99 72 19 99 83 | 44 20 55 77 69 91 27 31 28 81 80 27 02 07 97 23 95 98 12 25 75 29 47 71 07 47 78 39 41 59 27 76 13 15 66 61 68 35 69 86 16 53 67 63 99 85 41 56 08 28 33 40 94 76 90 85 31 70 24 65 84 65 99 82 19 25 54 37 21 46 33 02 52 99 51 33 26 04 87 02 08 18 96 84 | 54 42 61 45 91 06 64 79 80 82 32 16 83 63 42 49 19 78 65 97 40 42 14 61 49 34 04 18 25 98 59 30 82 72 26 88 54 36 21 75 03 88 99 53 46 51 55 78 22 94 34 40 68 87 84 25 30 76 25 08 92 84 42 61 40 38 09 99 40 23 29 39 46 55 10 90 35 84 56 70 63 23 91 39 85 | 52 92 03 71 89 07 09 37 68 66 58 20 44 92 51 56 13 71 79 99 26 37 02 06 16 67 36 52 58 16 79 73 56 60 59 27 44 77 94 82 20 50 98 33 09 87 94 37 40 83 64 83 58 85 17 76 53 02 83 52 22 27 39 20 48 92 45 21 09 42 24 23 12 37 52 28 50 78 79 20 86 62 73 20 59 86 | 54 96 80 15 91 90 99 70 10 09 58 90 93 50 81 99 54 38 36 10 30 11 35 84 16 45 82 18 11 97 36 43 96 79 97 65 40 48 23 19 17 31 64 52 65 65 37 32 65 76 99 79 34 65 79 27 55 33 03 01 33 27 61 28 66 08 04 70 49 46 48 83 01 45 19 96 13 81 14 21 31 79 93 85 50 05 87 | 92 92 48 84 59 98 31 53 23 27 15 22 79 95 24 76 05 79 16 93 97 89 38 89 42 83 02 88 94 95 82 21 01 97 48 39 31 78 09 65 50 56 97 61 01 07 65 27 21 23 14 15 80 97 44 78 49 35 33 45 81 74 34 05 31 57 09 38 94 07 69 54 69 32 65 68 46 68 78 90 24 28 49 51 45 86 35 88 | 41 63 89 76 87 31 86 09 46 14 87 82 22 29 47 16 13 10 70 72 82 95 48 64 58 43 13 75 42 69 21 12 67 13 64 85 58 23 98 09 37 76 05 22 31 12 66 50 29 99 86 72 45 25 10 28 19 06 90 43 29 31 67 79 46 25 74 14 97 35 76 37 65 46 23 82 06 22 30 76 93 66 94 17 96 13 20 72 89 | 63 40 78 08 52 09 90 41 70 28 36 14 46 44 85 96 24 52 58 15 87 37 05 98 99 39 13 61 76 38 44 99 83 74 90 22 53 80 56 98 30 51 63 39 44 30 91 91 04 22 27 73 17 35 53 18 35 45 54 56 27 78 48 13 69 36 44 38 71 25 30 56 15 22 73 43 32 69 59 25 93 83 45 11 34 94 44 39 92 90 | 12 36 56 88 13 96 16 12 55 54 11 47 19 78 17 17 68 81 77 51 42 55 99 85 66 27 81 79 93 42 65 61 69 74 14 01 18 56 12 01 58 37 91 22 42 66 83 25 19 04 96 41 25 45 18 69 96 88 36 93 10 12 98 32 44 83 83 04 72 91 04 27 73 07 34 37 71 60 59 31 01 54 54 44 96 93 83 36 04 45 91 | 30 18 22 20 42 96 65 79 17 41 55 69 94 81 29 80 91 31 85 25 47 26 43 49 02 99 34 67 99 76 16 14 15 93 08 32 99 44 61 77 67 50 43 55 87 55 53 72 17 46 62 25 50 99 73 05 93 48 17 31 70 80 59 09 44 59 45 13 74 66 58 94 87 73 16 14 85 38 74 99 64 23 79 28 71 42 20 37 82 31 23 92 | 51 96 39 65 46 71 56 13 29 68 53 86 45 33 51 49 12 91 21 21 76 85 02 17 98 15 46 12 60 21 88 30 92 83 44 59 42 50 27 88 46 86 94 73 45 54 23 24 14 10 94 21 20 34 23 51 04 83 99 75 90 63 60 16 22 33 83 70 11 32 10 50 29 30 83 46 11 05 31 17 86 42 49 01 44 63 28 60 07 78 95 40 93 | 44 61 89 59 04 49 51 27 69 71 46 76 44 04 09 34 56 39 15 06 94 91 75 90 65 27 56 23 74 06 23 33 36 69 14 39 05 34 35 57 33 22 76 46 56 10 61 65 98 09 16 69 04 62 65 18 99 76 49 18 72 66 73 83 82 40 76 31 89 91 27 88 17 35 41 35 32 51 32 67 52 68 74 85 80 57 07 11 62 66 47 22 67 94 | 65 37 19 97 26 17 16 24 24 17 50 37 64 82 24 36 32 11 68 34 69 31 32 89 79 93 96 68 49 90 14 23 04 04 67 99 81 74 70 74 36 96 68 09 64 39 88 35 54 89 96 58 66 27 88 97 32 14 06 35 78 20 71 06 85 66 57 02 58 91 72 05 29 56 73 48 86 52 09 93 22 57 79 42 12 01 31 68 17 59 63 76 07 77 95 | 73 81 14 13 17 20 11 09 01 83 08 85 91 70 84 63 62 77 37 07 47 01 59 95 39 69 39 21 99 09 87 02 97 16 92 36 74 71 90 66 33 73 73 75 52 91 11 12 26 53 05 26 26 48 61 50 90 65 01 87 42 47 74 35 22 73 24 26 56 70 52 05 48 41 31 18 83 27 21 39 80 85 26 08 44 02 71 07 63 22 05 52 19 08 20 96 | 17 25 21 11 72 93 33 49 64 23 53 82 03 13 91 65 85 02 40 05 42 31 77 42 05 36 06 54 04 58 07 76 87 83 25 57 66 12 74 33 85 37 74 32 20 69 03 97 91 68 82 44 19 14 89 28 85 85 80 53 34 87 58 98 88 78 48 65 98 40 11 57 10 67 70 81 60 79 74 72 97 59 79 47 30 20 54 80 89 91 14 05 33 36 79 39 97 | 60 85 59 39 60 07 57 76 77 92 06 35 15 72 23 41 45 52 95 18 64 79 86 53 56 31 69 11 91 31 84 50 44 82 22 81 41 40 30 42 30 91 48 94 74 76 64 58 74 25 96 57 14 19 03 99 28 83 15 75 99 01 89 85 79 50 03 95 32 67 44 08 07 41 62 64 29 20 14 76 26 55 48 71 69 66 19 72 44 25 14 01 48 74 12 98 07 98 | 64 66 84 24 18 16 27 48 20 14 47 69 30 86 48 40 23 16 61 21 51 50 26 47 35 33 91 28 78 64 43 68 04 79 51 08 19 60 52 95 06 68 46 86 35 97 27 58 04 65 30 58 99 12 12 75 91 39 50 31 42 64 70 04 46 07 98 73 98 93 37 89 77 91 64 71 64 65 66 21 78 62 81 74 42 20 83 70 73 95 78 45 92 27 34 53 71 15 99 | 30 11 85 31 34 71 13 48 05 14 44 03 19 67 23 73 19 57 06 90 94 72 57 69 81 62 59 68 88 57 55 69 49 13 07 87 97 80 89 05 71 05 05 26 38 40 16 62 45 99 18 38 98 24 21 26 62 74 69 04 85 57 77 35 58 67 91 79 79 57 86 28 66 34 72 51 76 78 36 95 63 90 08 78 47 63 45 31 22 70 52 48 79 94 15 77 61 67 68 100 | 23 33 44 81 80 92 93 75 94 88 23 61 39 76 22 03 28 94 32 06 49 65 41 34 18 23 08 47 62 60 03 63 33 13 80 52 31 54 73 43 70 26 16 69 57 87 83 31 03 93 70 81 47 95 77 44 29 68 39 51 56 59 63 07 25 70 07 77 43 53 64 03 94 42 95 39 18 01 66 21 16 97 20 50 90 16 70 10 95 69 29 06 25 61 41 26 15 59 63 35 101 | -------------------------------------------------------------------------------- /src/project_euler/problem001.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem001) 2 | 3 | (defn sum-of [n] 4 | (reduce + (range n 1000 n))) 5 | 6 | ;; Elapsed time: 2.147203 msecs 7 | (defn euler-001 [] 8 | (- (+ (sum-of 3) (sum-of 5)) (sum-of 15))) 9 | -------------------------------------------------------------------------------- /src/project_euler/problem002.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem002 2 | (:use [clojure.contrib.lazy-seqs :only (fibs)])) 3 | 4 | ;; Elapsed time: 1.250295 msecs 5 | (defn euler-002 [] 6 | (reduce + (filter even? (take-while #(< % 4000000) (fibs))))) 7 | -------------------------------------------------------------------------------- /src/project_euler/problem003.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem003 2 | (:use [clojure.contrib.lazy-seqs :only (primes)]) 3 | (:use [clojure.contrib.math :only (sqrt)])) 4 | 5 | (defn greatest-prime-of [number] 6 | (reduce max (filter #(zero? (mod number %)) 7 | (take-while #(< % (sqrt number)) primes)))) 8 | 9 | ;; Elapsed time: 123.886287 msecs 10 | (defn euler-003 [] 11 | (greatest-prime-of 600851475143)) 12 | -------------------------------------------------------------------------------- /src/project_euler/problem004.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem004) 2 | 3 | (defn palindrome? [s] 4 | (= s (reverse s))) 5 | 6 | (defn palindrome-number? [n] 7 | (palindrome? (seq (str n)))) 8 | 9 | ;; Elapsed time: 297.596835 msecs 10 | (defn euler-004 [] 11 | (reduce max (filter palindrome-number? 12 | (for [i (range 100 1000) j (range i 1000)] (* i j))))) -------------------------------------------------------------------------------- /src/project_euler/problem005.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem005 2 | (:use [clojure.contrib.math :only (lcm)])) 3 | 4 | ;; Elapsed time: 0.210153 msecs 5 | (defn euler-005 [] 6 | (reduce lcm (range 1 21))) -------------------------------------------------------------------------------- /src/project_euler/problem006.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem006) 2 | 3 | (defn sqr [n] (* n n)) 4 | 5 | ;; Elapsed time: 0.199956 msecs 6 | (defn euler-006 [] 7 | (let [rn (range 1 101)] 8 | (- (sqr (reduce + rn)) (reduce + (map sqr rn))))) -------------------------------------------------------------------------------- /src/project_euler/problem007.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem007 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | ;; Elapsed time: 20.637195 msecs 5 | (defn euler-007 [] 6 | (last (take 10001 primes))) -------------------------------------------------------------------------------- /src/project_euler/problem008.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem008) 2 | 3 | (defn calc-product [lst] 4 | (reduce * (map #(- (int %) 48) lst))) 5 | 6 | ;; Elapsed time: 33.323509 msecs 7 | (defn euler-008 [] 8 | (reduce max (map calc-product 9 | (partition 5 1 (remove #(= \newline %) (seq (slurp "res/problem008.txt"))))))) -------------------------------------------------------------------------------- /src/project_euler/problem009.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem009) 2 | 3 | (defn is-triplet? [a b c] 4 | (= (+ (* a a) (* b b)) (* c c))) 5 | 6 | ;; Elapsed time: 42.579438 msecs 7 | (defn euler-009 [] 8 | (first (for [a (range 1 1000) b (range a (- 1000 a)) 9 | :let [c (- 1000 a b)] 10 | :when (and (> c b) (is-triplet? a b c))] (* a b c)))) -------------------------------------------------------------------------------- /src/project_euler/problem010.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem010 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | ;; Elapsed time: 12975.457287 msecs 5 | (defn euler-010 [] 6 | (reduce + (take-while #(< % 2000000) primes))) 7 | 8 | ;; small optimization to problem 9 | (defn sieve [] 10 | (loop [nums (set (cons 2 (range 3 2000000 2))) n 3] 11 | (if (> (* n n) 2000000) (reduce + nums) 12 | (recur (clojure.set/difference nums (range (* n n) 2000000 n)) (+ n 2))))) -------------------------------------------------------------------------------- /src/project_euler/problem011.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem011) 2 | 3 | (defn get-matrix [] 4 | (map #(Integer/parseInt (apply str %)) 5 | (partition 2 2 (remove #(or (= \newline %) (= \ %)) 6 | (seq (slurp "res/problem011.txt")))))) 7 | 8 | (defn get-at [i j matrix] 9 | (if (and (>= i 0) (< i 20) (>= j 0) (< j 20)) 10 | (nth matrix (+ j (* i 20))) 0)) 11 | 12 | ;; Elapsed time: 152.426437 msecs 13 | (defn euler-011 [] 14 | (let [matrix (get-matrix) 15 | ways (for [i (range 20) j (range 20)] 16 | [(map #(get-at i (+ % j) matrix) (range 4)) 17 | (map #(get-at (+ % i) j matrix) (range 4)) 18 | (map #(get-at (+ % i) (+ % j) matrix) (range 4)) 19 | (map #(get-at (+ % i) (- j %) matrix) (range 4))])] 20 | (reduce max (map #(reduce * %) (reduce concat ways))))) -------------------------------------------------------------------------------- /src/project_euler/problem012.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem012 2 | (:use [clojure.contrib.lazy-seqs :only (primes)]) 3 | (:use [clojure.contrib.math :only (sqrt)])) 4 | 5 | (defn triangle-number [n] 6 | (* n (/ (+ n 1) 2))) 7 | 8 | (def triangles (map triangle-number (iterate inc 1))) 9 | 10 | (defn num-of-divisors [n] 11 | (* 2 (count (filter #(zero? (mod n %)) (range 1 (sqrt n)))))) 12 | 13 | (defn factorize [n] 14 | (loop [x n [p & ps] primes factors []] 15 | (cond (= 1 x) factors 16 | (zero? (mod x p)) (recur (/ x p) primes (conj factors p)) 17 | :else (recur x ps factors)))) 18 | 19 | (defn factorize-count [n] 20 | (reduce * (map (comp inc count) (vals (group-by identity (factorize n)))))) 21 | 22 | ;; Elapsed time: 2850.205718 msecs 23 | (defn euler-012 [] 24 | (first (drop-while #(< (factorize-count %) 500) triangles))) -------------------------------------------------------------------------------- /src/project_euler/problem013.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem013) 2 | 3 | ;; Elapsed time: 24.427424 msecs 4 | (defn euler-013 [] 5 | (read-string 6 | (apply str (take 10 (str (reduce + (map bigint (re-seq #"\w+" (slurp "res/problem013.txt"))))))))) -------------------------------------------------------------------------------- /src/project_euler/problem014.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem014) 2 | 3 | (defn collatz-next [n] 4 | (if (even? n) (/ n 2) (inc (* n 3)))) 5 | 6 | (defn collatz-chain-recursive [n] 7 | (if (= n 1) 1 8 | (inc (collatz-chain-recursive (collatz-next n))))) 9 | 10 | ;; Elapsed time: 12668.080554 msecs 11 | (defn euler-014 [] 12 | (first 13 | (apply max-key second 14 | (map #(list % (collatz-chain-recursive %)) (range 1 1000000))))) -------------------------------------------------------------------------------- /src/project_euler/problem015.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem015) 2 | 3 | (defn routes-extend [lst] 4 | (let [size (count lst)] 5 | (for [i (range (inc size))] 6 | (if (or (= 0 i) (= size i)) 1 7 | (+ (nth lst (dec i)) (nth lst i)))))) 8 | 9 | ;; Elapsed time: 14.809846 msecs 10 | (defn euler-015 [] 11 | (let [n 20 d (inc (* n 2))] 12 | (nth (last (take d (iterate routes-extend [1]))) n))) 13 | -------------------------------------------------------------------------------- /src/project_euler/problem016.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem016) 2 | 3 | (defn powers-of-2 [] 4 | (iterate (partial *' 2) 1)) 5 | 6 | (defn sum-of-digits [n] 7 | (reduce + (map #(- (int %) 48) (seq (str n))))) 8 | 9 | (defn euler-016 [] 10 | (sum-of-digits (last (take 1001 (powers-of-2))))) -------------------------------------------------------------------------------- /src/project_euler/problem017.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem017) 2 | 3 | (def first20 ["one" "two" "three" "four" "five" 4 | "six" "seven" "eight" "nine" "ten" 5 | "eleven" "twelve" "thirteen" "fourteen" "fifteen" 6 | "sixteen" "seventeen" "eighteen" "nineteen"]) 7 | (def decas ["" "ten" "twenty" "thirty" "forty" "fifty" "sixty" "seventy" "eighty" "ninety"]) 8 | (def h "hundred") 9 | (def t "thousand") 10 | (def a "and") 11 | 12 | (defn word-length [n] 13 | (cond (= n 1000) (+ (count t) (count (nth first20 1))) 14 | (< n 100) 15 | (let [q (quot n 10) m (mod n 10) 16 | d (count (nth decas q))] 17 | (if (zero? m) d 18 | (if (< q 2) (count (nth first20 (dec (+ m (* 10 q))))) 19 | (+ d (count (nth first20 (dec m))))))) 20 | (< n 1000) 21 | (let [q (quot n 100) m (mod n 100)] 22 | (if (zero? m) (+ (word-length q) (count h)) 23 | (+ (count a) (count h) (word-length q) (word-length m)))))) 24 | 25 | ;; Elapsed time: 30.973979 msecs 26 | (defn euler-017 [] 27 | (reduce + (map word-length (range 1 1001)))) -------------------------------------------------------------------------------- /src/project_euler/problem018.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem018) 2 | 3 | (def triangle 4 | (map #(Integer/parseInt %)(map #(reduce str %) (partition 2 2 (remove #(or (= \newline %) (= \ %)) 5 | (seq (slurp "res/problem018.txt"))))))) 6 | 7 | (def nested-triangle 8 | (loop [lst triangle n 1 newlist nil] 9 | (if (empty? lst) (reverse newlist) 10 | (recur (drop n lst) (inc n) (cons (take n lst) newlist))))) 11 | 12 | (defn max-row [lst] 13 | (map #(reduce max %) (partition 2 1 lst))) 14 | 15 | (defn step-max [lst1 lst2] 16 | (map + (max-row lst1) lst2)) 17 | 18 | ;; Elapsed time: 0.421325 msecs 19 | (defn euler-018 [] 20 | (reduce step-max (reverse nested-triangle))) -------------------------------------------------------------------------------- /src/project_euler/problem019.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem019 2 | (import [java.util GregorianCalendar])) 3 | 4 | (defn calendar-for [year month] 5 | (doto (GregorianCalendar.) 6 | (.set GregorianCalendar/YEAR year) 7 | (.set GregorianCalendar/MONTH month) 8 | (.set GregorianCalendar/DAY_OF_MONTH 1))) 9 | 10 | ;; Elapsed time: 30.138531 msecs 11 | (defn euler-019 [] 12 | (reduce + 13 | (for [year (range 1901 (inc 2000)) month (range 1 (inc 12))] 14 | (let [c (calendar-for year month)] 15 | (if (= GregorianCalendar/SUNDAY 16 | (.get c GregorianCalendar/DAY_OF_WEEK)) 1 0))))) 17 | -------------------------------------------------------------------------------- /src/project_euler/problem020.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem020) 2 | 3 | (defn sum-of-digits [n] 4 | (reduce + (map #(- (int %) 48) (seq (str n))))) 5 | 6 | (defn ! [n] 7 | (reduce *' (range 1 (inc n)))) 8 | 9 | ;; Elapsed time: 1.74764 msecs 10 | (defn euler-020 [] 11 | (sum-of-digits (! 100))) 12 | -------------------------------------------------------------------------------- /src/project_euler/problem021.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem021) 2 | 3 | (defn sum-of-proper-divisors [n] 4 | (let [base (filter #(zero? (mod n %)) (range 2 (Math/sqrt n)))] 5 | (reduce + 1 (concat (map #(/ n %) base) base)))) 6 | 7 | (defn amicable? [a b] 8 | (and (not (= a b)) 9 | (= a (sum-of-proper-divisors b)) 10 | (= b (sum-of-proper-divisors a)))) 11 | 12 | ;; Elapsed time: 72.493076 msecs 13 | (defn euler-021 [] 14 | (reduce + 15 | (let [sums (vec (map sum-of-proper-divisors (range 1 10000)))] ;; vec is important 16 | (for [i (range 1 10000)] 17 | (if (amicable? i (nth sums (dec i))) i 0))))) 18 | -------------------------------------------------------------------------------- /src/project_euler/problem022.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem022) 2 | 3 | (defn score [string] 4 | (reduce + (map #(- (int %) 64) string))) 5 | 6 | ;; Elapsed time: 34.330959 msecs 7 | (defn euler-022 [] 8 | (->> "res/problem022.txt" 9 | (slurp) 10 | (re-seq #"\w+") 11 | (sort) 12 | (map-indexed #(* (inc %1) (score %2))) 13 | (reduce +))) 14 | -------------------------------------------------------------------------------- /src/project_euler/problem023.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem023) 2 | 3 | (defn sum-of-proper-divisors [n] 4 | (let [divs (filter #(zero? (mod n %)) (range 2 (Math/sqrt n)))] 5 | (reduce + 1 (set (concat 6 | (let [isq (int (Math/sqrt n))] 7 | (if (= n (* isq isq)) [isq] [])) 8 | divs 9 | (map #(/ n %) divs)))))) 10 | 11 | (defn abundant? [n] 12 | (> (sum-of-proper-divisors n) n)) 13 | 14 | (defn abundant-sum? [n abundant] 15 | (some #(abundant (- n %)) 16 | (take-while #(< % n) abundant))) 17 | 18 | ;; Elapsed time: 14591.108689 msecs 19 | (defn euler-023 [] 20 | (let [abundant (into (sorted-set) (filter abundant? (range 12 28124)))] 21 | (->> (range 1 28124) 22 | (remove #(abundant-sum? % abundant)) 23 | (reduce +)))) 24 | -------------------------------------------------------------------------------- /src/project_euler/problem024.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem024 2 | (:require [clojure.math.combinatorics :as comb])) 3 | 4 | ;; Elapsed time: 2848.733561 msecs 5 | (defn euler-024 [] 6 | (->> (range 10) 7 | (comb/permutations) 8 | (drop (dec 1000000)) 9 | (first) 10 | (apply str))) 11 | 12 | (defn euler-024-clever [] 13 | (let [! (fn [n] (reduce * (range 1 (inc n))))] 14 | (loop [available-digits (range 10) 15 | num 1000000 16 | current-digit 0 17 | init 9 18 | result []] 19 | (let [f (! init)] 20 | (cond 21 | (= 0 init) 22 | (apply str (concat result available-digits)) 23 | 24 | (< f num) (recur available-digits 25 | (- num f) 26 | (inc current-digit) 27 | init 28 | result) 29 | 30 | :else (recur (concat (take current-digit available-digits) 31 | (drop (inc current-digit) available-digits)) 32 | num 33 | 0 34 | (dec init) 35 | (conj result (nth available-digits current-digit)))))))) 36 | -------------------------------------------------------------------------------- /src/project_euler/problem025.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem025) 2 | 3 | (defn num-of-digits [n] 4 | (count (str n))) 5 | 6 | (defn fibonacci [] 7 | (->> [0 1] 8 | (iterate (fn [[a b]] [b (+' a b)])) 9 | (map first))) 10 | 11 | ;; Elapsed time: 834.545293 msecs 12 | (defn euler-025 [] 13 | (->> (fibonacci) 14 | (map-indexed (fn [i n] [i (num-of-digits n)])) 15 | (drop-while #(< (second %) 1000)) 16 | (first) 17 | (first))) 18 | -------------------------------------------------------------------------------- /src/project_euler/problem026.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem026) 2 | 3 | ;; calculate cycle for 1/denom 4 | ;; e.g 1/3 = 0.(3), cycle is 3, length 1 5 | ;; e.g 1/7 = 0.(142857), cycle is 142857, length is 6 6 | 7 | (defn unit-fraction [denom] 8 | (loop [numer 1 i 1 known {}] 9 | (let [r (rem (* 10 numer) denom)] 10 | (cond (zero? r) 0 11 | (get known r) (- i (get known r)) 12 | :else (recur r (inc i) (assoc known r i)))))) 13 | 14 | ;; "Elapsed time: 312.829133 msecs" 15 | (defn euler-026 [] 16 | (->> (range 1 1000) 17 | (map #(vec [% (unit-fraction %)])) 18 | (apply max-key second) 19 | (first))) 20 | -------------------------------------------------------------------------------- /src/project_euler/problem027.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem027 2 | (:require [clojure.contrib.lazy-seqs :refer [primes]])) 3 | 4 | (defn quad-form [a b n] 5 | (+ (* n n) (* a n) b)) 6 | 7 | (defn is-prime? [n] 8 | (if (< n 2) false 9 | (if (= n (first (drop-while #(> n %) primes))) true false ))) 10 | 11 | ;; Elapsed time: 44657.058487 msecs 12 | (defn euler-027 [] 13 | (second (reduce #(if (> (first %1) (first %2)) %1 %2) 14 | (for [a (range -999 1000) b (range -999 1000)] 15 | [(count (take-while is-prime? 16 | (map #(quad-form a b %) (iterate inc 0)))) (* a b)])))) -------------------------------------------------------------------------------- /src/project_euler/problem028.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | ;; Elapsed time: 3.276816 msecs 4 | (defn euler-028 [] 5 | (inc (reduce + 6 | (loop [incr 2 times 0 number 1 lst [] depth 0] 7 | (if (= (/ (dec 1001) 2) depth) lst 8 | (if (= times 4) 9 | (recur (+ 2 incr) 0 number lst (inc depth)) 10 | (recur incr (inc times) (+ number incr) 11 | (conj lst (+ number incr)) depth))))))) -------------------------------------------------------------------------------- /src/project_euler/problem029.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn pow [n pw] 4 | (reduce *' (take pw (repeat n)))) 5 | 6 | ;; Elapsed time: 706.130155 msecs 7 | (defn euler-029 [] 8 | (count (distinct 9 | (for [i (range 2 101) j (range 2 101)] 10 | (pow i j))))) 11 | 12 | -------------------------------------------------------------------------------- /src/project_euler/problem030.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn pow-5 [n] 4 | (reduce * (take 5 (repeat n)))) 5 | 6 | (defn sum-digits-pow-5 [n] 7 | (reduce + (map #(pow-5 (- (int %) 48)) (seq (str n))))) 8 | 9 | ;; Elapsed time: 6470.950529 msecs 10 | (defn euler-030 [] 11 | (reduce + (filter #(= % (sum-digits-pow-5 %)) (range 10 295246)))) 12 | 13 | -------------------------------------------------------------------------------- /src/project_euler/problem031.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn select-coins [money lst] 4 | (if (or (empty? lst) (< money 0)) 0 5 | (if (= 1 (count lst)) 1 6 | (+ (select-coins money (butlast lst)) 7 | (select-coins (- money (last lst)) lst))))) 8 | 9 | ;; Elapsed time: 211.23126 msecs 10 | (defn euler-031 [] 11 | (select-coins 200 [1 2 5 10 20 50 100 200])) 12 | -------------------------------------------------------------------------------- /src/project_euler/problem032.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn to-seq [n] 4 | (map #(- (int %) 48) (seq (str n)))) 5 | 6 | (defn is-pandigital? [a b] 7 | (if-not (= 4 (count (seq (str (* a b))))) 8 | false 9 | (if-not (= [1 2 3 4 5 6 7 8 9] 10 | (sort (concat (to-seq a) (to-seq b) (to-seq (* a b))))) 11 | false true))) 12 | 13 | ;; Elapsed time: 909.178114 msecs 14 | (defn euler-032 [] 15 | (+ 16 | (reduce + (distinct (filter #(not (nil? %)) 17 | (for [a (range 10 100) b (range 100 1000)] 18 | (if (is-pandigital? a b) (* a b)))))) 19 | (reduce + (distinct (filter #(not (nil? %)) 20 | (for [a (range 1 10) b (range 1000 10000)] 21 | (if (is-pandigital? a b) (* a b)))))))) 22 | -------------------------------------------------------------------------------- /src/project_euler/problem033.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn to-seq [n] 4 | [(quot n 10) (mod n 10)]) 5 | 6 | (defn silly-simplify [numer denom] 7 | (let [rat1 (to-seq numer) rat2 (to-seq denom)] 8 | (if (and 9 | (= (last rat1) (first rat2)) 10 | (= (/ (first rat1) (last rat2)) (/ numer denom))) 11 | (/ numer denom)))) 12 | 13 | ;; Elapsed time: 27.491206 msecs 14 | (defn euler-033 [] 15 | (denominator (reduce * (filter #(not (nil? %)) 16 | (for [numer (range 10 99) denom (range (inc numer) 100)] 17 | (if (or (zero? (mod numer 10)) (zero? (mod denom 10))) nil 18 | (silly-simplify numer denom))))))) 19 | -------------------------------------------------------------------------------- /src/project_euler/problem034.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn fact-digit [n] 4 | (reduce + (map #(reduce *' (range 1 (inc (- (int %) 48)))) (seq (str n))))) 5 | 6 | ;; TODO find the way to calculate upper bound more smartly 7 | ;; Elapsed time: 10856.205671 msecs 8 | (defn euler-034 [] 9 | (reduce + (filter #(not (nil? %)) (for [i (range 10 1000000)] 10 | (if (= i (fact-digit i)) i))))) -------------------------------------------------------------------------------- /src/project_euler/problem035.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn shift [vect n] 5 | (loop [idx n sqnc vect] 6 | (if (zero? idx) sqnc 7 | (recur (dec idx) (concat (rest sqnc) (list (first sqnc))))))) 8 | 9 | (defn is-prime? [prime-seq] 10 | (let [prime (bigint (reduce str prime-seq))] 11 | (= (first (drop-while #(< % prime) primes)) prime))) 12 | 13 | (defn to-seq [n] 14 | (map #(- (int %) 48) (seq (str n)))) 15 | 16 | (defn is-circular? [prime] 17 | (and (not (some #( 18 | or (= % 0) (= % 2) (= % 4) (= % 5) (= % 6) (= % 8)) (to-seq prime))) 19 | (not (zero? (reduce * 20 | (for [i (range (count (to-seq prime)))] 21 | (if (is-prime? (shift (to-seq prime) (inc i))) 1 0))))))) 22 | 23 | ;; Elapsed time: 45633.570512 msecs 24 | (defn euler-035 [] 25 | (+ 2 (count (filter is-circular? (take-while #(< % 1000000) primes))))) -------------------------------------------------------------------------------- /src/project_euler/problem036.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn is-palindrom? [str] 4 | (= (seq str) (reverse (seq str)))) 5 | 6 | ;; Elapsed time: 1966.153173 msecs 7 | (defn euler-036 [] 8 | (reduce + (filter #(not (nil? %)) 9 | (for [i (range 1 1000000)] 10 | (if (and (is-palindrom? (str i)) (is-palindrom? (Integer/toString i 2))) 11 | i ))))) 12 | 13 | -------------------------------------------------------------------------------- /src/project_euler/problem037.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn is-prime? [prime] 5 | (if (= 1 prime) false 6 | (not-any? #(zero? (rem prime %)) (take-while #(<= (* % %) prime) primes)))) 7 | 8 | (defn to-seq [n] 9 | (map #(- (int %) 48) (seq (str n)))) 10 | 11 | (defn to-num [seq] 12 | (bigint (reduce str seq))) 13 | 14 | (defn is-truncatable-left? [prime-seq] 15 | (if (empty? prime-seq) true 16 | (if (is-prime? (to-num prime-seq)) 17 | (recur (rest prime-seq)) 18 | false))) 19 | 20 | (defn is-truncatable-right? [prime-seq] 21 | (if (empty? prime-seq) true 22 | (if (is-prime? (to-num prime-seq)) 23 | (recur (butlast prime-seq)) 24 | false))) 25 | 26 | (defn is-truncatable-both? [prime] 27 | (let [prime-seq (to-seq prime)] 28 | (if (and (is-truncatable-left? prime-seq) (is-truncatable-right? prime-seq)) true false))) 29 | 30 | ;; Elapsed time: 6986.912371 msecs 31 | (defn euler-037 [] 32 | (reduce + (take 11 (drop-while #(< % 10) (filter is-truncatable-both? primes))))) -------------------------------------------------------------------------------- /src/project_euler/problem038.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn concat-product [num mul string] 4 | (cond 5 | (< (count string) 9) (recur num (inc mul) (str string (* num mul))) 6 | (> (count string) 9) nil 7 | (= (count string) 9) string )) 8 | 9 | (defn is-pandigital? [dig-string] 10 | (and (= (count dig-string) 9) 11 | (= dig-string (apply str (distinct (seq dig-string)))) 12 | (not (some #(= % \0) (seq dig-string))))) 13 | 14 | ;; Elapsed time: 274.887328 msecs 15 | (defn euler-038 [] 16 | (reduce max (map #(Integer/parseInt %) 17 | (filter is-pandigital? 18 | (map #(concat-product % 1 nil) (take 10000 (iterate inc 1))))))) -------------------------------------------------------------------------------- /src/project_euler/problem039.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.math :only (sqrt)])) 3 | 4 | (defn triangle-solutions [n] 5 | (for [a (range 1 n) b (range a n) 6 | :let [c (sqrt (+ (* a a) (* b b)))] 7 | :when (and (= n (+ a b c)) 8 | (> (+ a b) c))] 9 | [a b (int c)])) 10 | 11 | ;; Elapsed time: 265066.799355 msecs 12 | (defn euler-039 [] 13 | (first (reduce #(if (> (last %1) (last %2)) %1 %2) 14 | (filter #(not (zero? (last %))) 15 | (map #(cons % (cons (count (triangle-solutions %)) nil)) (range 1 1001)))))) -------------------------------------------------------------------------------- /src/project_euler/problem040.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn pow-10 [n] 4 | (if (zero? n) 1 5 | (reduce * (take n (repeat 10))))) 6 | 7 | (defn get-interval [n] 8 | (range (pow-10 n) (pow-10 (inc n)))) 9 | 10 | (defn calc [n idx sum] 11 | (let [idx1 (quot (- (dec n) sum) (inc idx)) 12 | idx2 (mod (- (dec n) sum) (inc idx))] 13 | (- (int (nth (seq (str (nth (get-interval idx) idx1))) idx2)) 48))) 14 | 15 | (defn get-digit [n] 16 | (loop [idx 0 cur-sum 0] 17 | (if 18 | (> n (+ cur-sum (* (inc idx) (count (get-interval idx))))) 19 | (recur (inc idx) (+ cur-sum (* (inc idx)(count (get-interval idx))))) 20 | (calc n idx cur-sum)))) 21 | 22 | ;;Elapsed time: 202.645058 msecs 23 | (defn euler-040 [] 24 | (reduce * (map #(get-digit (pow-10 %)) (take 7 (iterate inc 0))))) -------------------------------------------------------------------------------- /src/project_euler/problem041.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)]) 3 | (:use [clojure.contrib.combinatorics :only (lex-permutations)])) 4 | 5 | (defn is-prime? [prime] 6 | (if (= 1 prime) false 7 | (not-any? #(zero? (rem prime %)) (take-while #(<= (* % %) prime) primes)))) 8 | 9 | (defn all-pandigital-perm [] 10 | (sort (reduce concat (map lex-permutations (take 8 (map #(range 1 %) (iterate inc 2))))))) 11 | 12 | ;; Elapsed time: 532.861126 msecs 13 | (defn euler-041 [] 14 | (Integer/parseInt 15 | (reduce str (first (drop-while #(not (is-prime? (Integer/parseInt (reduce str %)))) 16 | (reverse (all-pandigital-perm))))))) -------------------------------------------------------------------------------- /src/project_euler/problem042.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn triangle-number [n] 4 | (* n (/ (+ n 1) 2))) 5 | 6 | (def triangles (map triangle-number (iterate inc 1))) 7 | 8 | (defn is-triangle? [n] 9 | (= n (first (drop-while #(< % n) triangles)))) 10 | 11 | (defn score [string] 12 | (reduce + (map #(- (int %) 64) (seq string)))) 13 | 14 | ;; Elapsed time: 38.543659 msecs 15 | (defn euler-042 [] 16 | (count (filter is-triangle? 17 | (map score (re-seq #"\w+" (slurp "res/problem042.txt")))))) -------------------------------------------------------------------------------- /src/project_euler/problem043.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.combinatorics :only (combinations permutations)])) 3 | 4 | (def SEQ (range 10)) 5 | 6 | (defn drop-elem [elm seq] 7 | (filter #(not (= elm %)) seq)) 8 | 9 | (defn drop-elems [to-drop seq] 10 | (if (empty? to-drop) seq 11 | (recur (rest to-drop) (drop-elem (first to-drop) seq)))) 12 | 13 | (defn is-div-by-n? [seq n] 14 | (zero? (mod (Integer/parseInt (reduce str seq)) n))) 15 | 16 | (defn is-first5 [seq] 17 | (and (even? (nth seq 3)) 18 | (zero? (mod (+ (nth seq 2) (nth seq 3) (nth seq 4)) 3)))) 19 | 20 | (defn first5-comb [digit5] 21 | (combinations (drop-elem digit5 SEQ) 5)) 22 | 23 | (defn first5 [digit5] 24 | (filter is-first5 25 | (loop [sq (first5-comb digit5) resq nil] 26 | (if (empty? sq) resq 27 | (recur (rest sq) (concat (permutations (first sq)) resq)))))) 28 | 29 | (defn last4 [first5-seq digit5] 30 | (permutations (drop-elem digit5 (drop-elems first5-seq SEQ)))) 31 | 32 | ;; Elapsed time: 1646.143061 msecs 33 | (defn euler-043 [] 34 | (reduce + (map #(read-string (reduce str %)) 35 | (filter #(not (nil? %)) 36 | (for [digit5 [0 5] first5-seq (first5 digit5) last4-seq (last4 first5-seq digit5)] 37 | (let [n4 (nth first5-seq 4) n6 (nth last4-seq 0) n7 (nth last4-seq 1) 38 | n8 (nth last4-seq 2) n9 (nth last4-seq 3)] 39 | (if (and (is-div-by-n? [n4 digit5 n6] 7) 40 | (is-div-by-n? [digit5 n6 n7] 11) 41 | (is-div-by-n? [n6 n7 n8] 13) 42 | (is-div-by-n? [n7 n8 n9] 17)) 43 | (concat first5-seq (cons digit5 last4-seq))))))))) -------------------------------------------------------------------------------- /src/project_euler/problem044.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.math :only (abs)])) 3 | 4 | (defn is-pentagonal? [n] 5 | (let [t (/ (inc (Math/sqrt (inc (* 24 n)))) 6)] 6 | (if (and (pos? n) (= t (quot t 1))) true false))) 7 | 8 | (defn pentagonal-number [n] 9 | (* n (/ (- (* 3 n) 1) 2))) 10 | 11 | (def pentagonals (map pentagonal-number (iterate inc 1))) 12 | 13 | ;; Elapsed time: 37549.503401 msecs 14 | (defn euler-044 [] 15 | (first (filter #(not (nil? %)) 16 | (for [i (take 10000 pentagonals) j (take 10000 pentagonals)] 17 | (if (and (is-pentagonal? (- i j)) (is-pentagonal? (+ i j))) 18 | (abs (- i j))))))) -------------------------------------------------------------------------------- /src/project_euler/problem045.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn is-triangle? [n] 4 | (let [t (/ (dec (Math/sqrt (inc (* 8 n)))) 2)] 5 | (if (and (pos? n) (= t (quot t 1))) true false))) 6 | 7 | (defn is-pentagonal? [n] 8 | (let [t (/ (inc (Math/sqrt (inc (* 24 n)))) 6)] 9 | (if (and (pos? n) (= t (quot t 1))) true false))) 10 | 11 | (defn is-hexagonal? [n] 12 | (let [t (/ (inc (Math/sqrt (inc (* 8 n)))) 2)] 13 | (if (and (pos? n) (= t (quot t 1))) true false))) 14 | 15 | (defn triangle-number [n] 16 | (* n (/ (+ n 1) 2))) 17 | 18 | (defn pentagonal-number [n] 19 | (* n (/ (- (* 3 n) 1) 2))) 20 | 21 | (defn hexagonal-number [n] 22 | (* n (- (* 2 n) 1))) 23 | 24 | (def triangles (map triangle-number (iterate inc 1))) 25 | (def pentagonals (map pentagonal-number (iterate inc 1))) 26 | (def hexagonals (map hexagonal-number (iterate inc 1))) 27 | 28 | ;; Elapsed time: 82.55289 msecs 29 | (defn euler-045 [] 30 | (first (drop-while #(not (and (is-triangle? %) (is-pentagonal? %))) 31 | (drop-while #(< % (inc 40755)) hexagonals)))) 32 | -------------------------------------------------------------------------------- /src/project_euler/problem046.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn is-prime? [prime] 5 | (if (= 1 prime) false 6 | (not-any? #(zero? (rem prime %)) (take-while #(<= (* % %) prime) primes)))) 7 | 8 | (defn is-square? [n] 9 | (let [sqr (Math/sqrt n)] 10 | (= sqr (quot sqr 1)))) 11 | 12 | (defn is-writable-as-sum? [n] 13 | (loop [candidate-primes (take-while #(< % n) primes)] 14 | (if (empty? candidate-primes) false 15 | (if (is-square? (/ (- n (first candidate-primes)) 2)) true 16 | (recur (rest candidate-primes)))))) 17 | 18 | (def composites (filter #(and (odd? %) (not (is-prime? %))) (iterate inc 2))) 19 | 20 | ;; Elapsed time: 306.410403 msecs 21 | (defn euler-046 [] 22 | (first (drop-while #(is-writable-as-sum? %) composites))) -------------------------------------------------------------------------------- /src/project_euler/problem047.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn next-prime [number] 5 | (let [n (first (drop-while #(not (zero? (mod number %))) 6 | (take-while #(<= % (inc (quot (Math/sqrt number) 1))) primes)))] 7 | (if (nil? n) number n))) 8 | 9 | (defn unique-factorization [number st] 10 | (if (= number 1) 11 | st 12 | (let [n (next-prime number)] 13 | (recur (/ number n) (conj st n))))) 14 | 15 | (defn find-consecutive 16 | ([] (find-consecutive 2)) 17 | ([n] (find-consecutive 2 n [])) 18 | ([n size lst] 19 | (if (= size (count lst)) 20 | lst 21 | (if (= size (count (unique-factorization n #{}))) 22 | (recur (inc n) size (conj lst n)) 23 | (recur (inc n) size []))))) 24 | 25 | ;; Elapsed time: 2617.502742 msecs 26 | (defn euler-047 [] 27 | (first (find-consecutive 4))) -------------------------------------------------------------------------------- /src/project_euler/problem048.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn power [n] 4 | (reduce *' (take n (repeat n)))) 5 | 6 | ;; Elapsed time: 1628.871589 msecs 7 | (defn euler-048 [] 8 | (let [s (str (reduce +' (take 1000 (map power (iterate inc 1)))))] 9 | (read-string (subs s (- (count s) 10))))) -------------------------------------------------------------------------------- /src/project_euler/problem049.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn perm? [triplet] 5 | (apply = (map #(sort (seq (str %))) triplet))) 6 | 7 | (defn prime? [number] 8 | (= number (first (drop-while #(< % number) primes)))) 9 | 10 | ;; Elapsed time: 265.708508 msecs 11 | (defn euler-049 [] 12 | (read-string (apply str (last 13 | (filter #(and (every? prime? %) (perm? %)) 14 | (loop [number 1001 lst []] 15 | (if (< number 3339) 16 | (recur (inc number) 17 | (conj lst (list number (+ number 3330) (+ number (* 2 3330))))) 18 | lst))))))) -------------------------------------------------------------------------------- /src/project_euler/problem050.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn prime? [prime] 5 | (if (= 1 prime) false 6 | (not-any? #(zero? (rem prime %)) (take-while #(<= (* % %) prime) primes)))) 7 | 8 | (def prime-sums 9 | (map first 10 | (iterate (fn [[sum s]] [(+ sum (first s)) (rest s)]) 11 | [0 primes]))) 12 | 13 | ;; Elapsed time: 13.652365 msecs 14 | (defn euler-050 [] 15 | (loop [c 1] 16 | (let [sums (reverse (take c prime-sums)) 17 | subs (take c (reverse (take-while #(> 1000000 (- % (last sums))) 18 | (rest prime-sums))))] 19 | (if-let [el (some #(if (prime? %) % nil) 20 | (map #(- %1 %2) subs sums))] 21 | el 22 | (recur (inc c)))))) -------------------------------------------------------------------------------- /src/project_euler/problem051.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)]) 3 | (:use [clojure.contrib.combinatorics :as comb])) 4 | 5 | (defn prime? [prime] 6 | (if (= 1 prime) false 7 | (not-any? #(zero? (rem prime %)) (take-while #(<= (* % %) prime) primes)))) 8 | 9 | (defn make-gold [nums patset] 10 | "Transforms digit array into gold pattern due to set of indexes. 11 | (make-gold [3 5 7] #{1}) => [3 :replace 7]" 12 | (loop [c 0 res []] 13 | (if (< c (count nums)) 14 | (if (contains? patset c) 15 | (recur (inc c) (conj res :replace)) 16 | (recur (inc c) (conj res (nth nums c)))) 17 | res))) 18 | 19 | (defn candidates [num patset] 20 | (let [nums (map #(- (int %) 48) (seq (str num))) 21 | gold (make-gold nums patset) 22 | sq (if (contains? patset 0) (range 1 10) (range 10))] 23 | (for [i sq] 24 | (read-string (apply str 25 | (for [j gold] 26 | (if (= j :replace) i j))))))) 27 | 28 | (defn patterns [num] 29 | (let [n (count (seq (str num)))] 30 | (map set (rest (comb/subsets (range (dec n))))))) 31 | 32 | (defn count-primes [num] 33 | (loop [[pat & pats] (patterns num) pc 0 rslt []] 34 | (if pat 35 | (let [new-pc (count (filter prime? (candidates num pat)))] 36 | (if (> new-pc pc) (recur pats new-pc (candidates num pat)) (recur pats pc rslt))) 37 | [pc rslt]))) 38 | 39 | ;; Elapsed time: 35722.899957 msecs 40 | (defn euler-051 [] 41 | (loop [[pr & prim] (drop-while #(< % 10) primes)] 42 | (let [[a b] (count-primes pr)] 43 | (if (= 8 a) (first b) 44 | (recur prim))))) -------------------------------------------------------------------------------- /src/project_euler/problem052.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn is-permut? [num1 num2] 4 | (= (sort (map #(- (int %) 48) (str num1))) 5 | (sort (map #(- (int %) 48) (str num2))))) 6 | 7 | ;; Elapsed time: 5603.315127 msecs 8 | (defn euler-052 [] 9 | (loop [c 1] 10 | (if (reduce #(and %1 %2) 11 | (map #(is-permut? c %) 12 | (map #(* % c) [2 3 4 5 6]))) 13 | c 14 | (recur (inc c))))) -------------------------------------------------------------------------------- /src/project_euler/problem053.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn fact [n] 4 | (reduce *' (range 1 (inc n)))) 5 | 6 | (defn comb [n r] 7 | (/ (fact n) (*' (fact r) (fact (- n r))))) 8 | 9 | ;; Elapsed time: 400.7951 msecs 10 | (defn euler-053 [] 11 | (count 12 | (filter #(> % 1000000) 13 | (for [n (range 1 (inc 100)) r (range n)] 14 | (comb n r))))) -------------------------------------------------------------------------------- /src/project_euler/problem054.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.set :as set])) 3 | 4 | (declare str-to-card) 5 | 6 | (def cards (map str-to-card (re-seq #"\w+" (slurp "res/poker.txt")))) 7 | 8 | (def ROYAL_SET #{\T \J \Q \K \A}) 9 | 10 | (defn cardnum [rank] 11 | (cond (= rank \T) 10 12 | (= rank \J) 11 13 | (= rank \Q) 12 14 | (= rank \K) 13 15 | (= rank \A) 14 16 | :else (- (int rank) 48))) 17 | 18 | (defn handscore [ranks] 19 | (loop [[c & cs] (reverse (sort-by cardnum ranks)) sum 0 size (count ranks)] 20 | (if c (recur cs (+ sum (* (int (Math/pow 15 (dec size))) (cardnum c))) (dec size)) sum))) 21 | 22 | (defn is-straight? [ranks] 23 | (let [cards (sort-by cardnum ranks)] 24 | (and (= 5 (count cards)) 25 | (= 5 (count (distinct cards))) 26 | (= 4 (- (cardnum (last cards)) (cardnum (first cards))))))) 27 | 28 | (defn str-to-card [s] 29 | (seq s)) 30 | 31 | (defn card-rate [ss] 32 | (let [ranks (map first ss) 33 | suits (map second ss)] 34 | (cond (and (= 1 (count (distinct suits))) ;; royal flush 35 | (= ROYAL_SET (set ranks))) 36 | (+ 1000000000 0) 37 | (and (= 1 (count (distinct suits))) ;; straight flush 38 | (is-straight? ranks)) 39 | (+ 900000000 (handscore ranks)) 40 | (some #(= % 4) (vals (frequencies ranks))) ;; four of kind 41 | (let [fr (frequencies ranks)] 42 | (+ 800000000 (reduce + 43 | (for [[k v] fr] 44 | (cond (= 4 v) (* 4 15 (cardnum k)) 45 | (= 1 v) (cardnum k) 46 | :else 0))))) 47 | (and 48 | (some #(= % 3) (vals (frequencies ranks))) ;; Full House 49 | (some #(= % 2) (vals (frequencies ranks)))) 50 | (let [fr (frequencies ranks)] 51 | (+ 700000000 (reduce + 52 | (for [[k v] fr] 53 | (cond (= 3 v) (* 3 15 (cardnum k)) 54 | (= 2 v) (* 2 (cardnum k)) 55 | :else 0))))) 56 | (= 1 (count (distinct suits))) ;; Flush 57 | (+ 600000000 (handscore ranks)) 58 | (is-straight? ranks) ;; Straight 59 | (+ 500000000 (handscore ranks)) 60 | (some #(= % 3) (vals (frequencies ranks))) ;; Three of Kind 61 | (let [fr (frequencies ranks)] 62 | (+ 400000000 (reduce + 63 | (for [[k v] fr] 64 | (cond (= 3 v) (* 3 15 (cardnum k)) 65 | :else 0))) 66 | (handscore (filter #(= (get fr %) 1) (keys fr))))) 67 | (= 2 (count (filter #(= % 2) (vals (frequencies ranks))))) ;; Two Pairs 68 | (let [fr (frequencies ranks)] 69 | (+ 300000000 (* 15 (handscore (filter #(= 2 (get fr %)) ranks))) (handscore (filter #(= 1 (get fr %)) ranks)))) 70 | (= 1 (count (filter #(= % 2) (vals (frequencies ranks))))) ;; One Pair 71 | (let [fr (frequencies ranks)] 72 | (+ 200000000 (* 15 15 15 (handscore (filter #(= 2 (get fr %)) ranks))) (handscore (filter #(= 1 (get fr %)) ranks)))) 73 | :else (handscore ranks)))) ;; High Card 74 | 75 | (defn win? [h1 h2] 76 | (> (card-rate h1) (card-rate h2))) 77 | 78 | ;; Elapsed time: 350.271917 msecs 79 | (defn euler-054 [] 80 | (count (filter true? (for [e (partition 10 10 cards)] 81 | (win? (take 5 e) (drop 5 e)))))) -------------------------------------------------------------------------------- /src/project_euler/problem055.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn reverse-num [n] 4 | (bigint (truncate-lead-zeros (apply str (reverse (str n)))))) 5 | 6 | (defn truncate-lead-zeros [s] 7 | (if (.startsWith s "0") (truncate-lead-zeros (.substring s 1)) s)) 8 | 9 | (defn is-palindrom? [n] 10 | (= n (reverse-num n))) 11 | 12 | (defn is-lychrel? [n] 13 | (loop [num n iter 1] 14 | (if (>= iter 50) true 15 | (if (and (not= iter 1) (is-palindrom? num)) false 16 | (recur (+ num (reverse-num num)) (inc iter)))))) 17 | 18 | (def lychrel-seq 19 | (for [i (iterate inc 10) 20 | :when (is-lychrel? i)] 21 | i)) 22 | 23 | ;; Elapsed time: 862.352047 msec 24 | (defn euler-055 [] 25 | (count (take-while #(< % 10000) lychrel-seq))) -------------------------------------------------------------------------------- /src/project_euler/problem056.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn sum-of [n] 4 | (reduce + (map #(- (int %) 48) (str n)))) 5 | 6 | (defn pow [a b] 7 | (reduce *' (repeat b a))) 8 | 9 | ;; Elapsed time: 832.28377 msecs 10 | (defn euler-056 [] 11 | (apply max 12 | (for [i (range 100) j (range 100)] 13 | (sum-of (pow i j))))) -------------------------------------------------------------------------------- /src/project_euler/problem057.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn num-greater? [rat] 4 | (> (count (str (numerator rat))) 5 | (count (str (denominator rat))))) 6 | 7 | (defn sqroot-next [rat] 8 | (+ 1 (/ 1 (+ 2 (- rat 1))))) 9 | 10 | ;; Elapsed time: 496.012248 msecs 11 | (defn euler-057 [] 12 | (count 13 | (filter true? 14 | (map num-greater? (take 1000 (iterate sqroot-next 3/2)))))) -------------------------------------------------------------------------------- /src/project_euler/problem058.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (def mods (map #(* 2 %) (iterate inc 1))) 5 | 6 | (defn is-prime? [n] 7 | (empty? (filter #(zero? (mod n %)) 8 | (take-while #(<= % (Math/sqrt n)) primes)))) 9 | 10 | (defn get-mods [len] 11 | (let [i (int (/ len 2))] 12 | (map + [2 4 6 8] (map #(* 8 (dec i) %) [1 1 1 1])))) 13 | 14 | ;; Elapsed time: 11654.382655 msecs 15 | (defn euler-058 [] 16 | (loop [nums [3 5 7 9] len 3 pr 3 tot 5] 17 | (if (< (/ pr tot) 0.1) len 18 | (let [nn (map + nums (get-mods (+ 2 len)))] 19 | (recur nn (+ len 2) (+ pr (count (filter is-prime? nn))) (+ tot 4)))))) -------------------------------------------------------------------------------- /src/project_euler/problem059.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (def TEXT (map read-string (re-seq #"\d+" (slurp "res/problem059.txt")))) 4 | 5 | (defn possible-pass [] 6 | (for [i (range 97 123) j (range 97 123) k (range 97 123)] 7 | [i j k])) 8 | 9 | (defn to-text [n] 10 | (apply str (map char n))) 11 | 12 | (defn get-words [text] 13 | (set (re-seq #"\w+" text))) 14 | 15 | (defn break-cipher [TEXT key] 16 | (let [key-long (take (count TEXT) (cycle key)) 17 | orig (map bit-xor key-long TEXT) 18 | sum-num (reduce + orig) 19 | wrds (get-words (to-text orig))] 20 | (if (contains? wrds "The") 21 | [sum-num wrds] [0 #{}]))) 22 | 23 | ;; Elapsed time: 10784.349459 msecs 24 | (defn euler-059 [] 25 | (loop [[k & ks] (possible-pass)] 26 | (if k 27 | (let [[s ws] (break-cipher TEXT k)] 28 | (if (= s 0) (recur ks) [s ws])) 0))) -------------------------------------------------------------------------------- /src/project_euler/problem060.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:use [clojure.contrib.lazy-seqs :only (primes)])) 3 | 4 | (defn prime? [n] 5 | (empty? (filter #(zero? (mod n %)) 6 | (take-while #(<= % (Math/sqrt n)) primes)))) 7 | 8 | (defn concat-num [n1 n2] 9 | (read-string (str n1 n2))) 10 | 11 | (defn concat-all-primes? [primes prime] 12 | (every? prime? (concat 13 | (map #(concat-num prime %) primes) 14 | (map #(concat-num % prime) primes)))) 15 | 16 | ;; Incorrect assumption that list of 5 is the list of 4 + 1 17 | 18 | ;; Elapsed time: 88104.727919 msecs 19 | (defn euler-060 [] 20 | (loop [n 100] 21 | (let [r (let [limit (take-while #(< % n) primes)] 22 | (first (for [p1 limit 23 | p2 (filter #(concat-all-primes? [p1] %) (drop-while #(< % p1) limit)) 24 | p3 (filter #(concat-all-primes? [p1 p2] %) (drop-while #(< % p2) limit)) 25 | p4 (filter #(concat-all-primes? [p1 p2 p3] %) (drop-while #(< % p3) limit)) 26 | p5 (filter #(concat-all-primes? [p1 p2 p3 p4] %) (drop-while #(< % p4) limit))] 27 | (+ p1 p2 p3 p4 p5))))] 28 | (if (nil? r) (recur (* 5 n)) r)))) -------------------------------------------------------------------------------- /src/project_euler/problem061.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | ;; lazy seqs 4 | (defn- n-angle [f] 5 | (map f (rest (range)))) 6 | 7 | (defn filter-4-digits [lazy] 8 | (take-while #(< % 10000) (drop-while #(< % 1000) lazy))) 9 | 10 | (def triangle (filter-4-digits (n-angle #(/ (* % (inc %)) 2)))) 11 | (def square (filter-4-digits (n-angle #(* % %)))) 12 | (def pentagonal (filter-4-digits (n-angle #(/ (* % (dec (* 3 %))) 2)))) 13 | (def hexagonal (filter-4-digits (n-angle #(* % (dec (* 2 %)))))) 14 | (def heptagonal (filter-4-digits (n-angle #(/ (* % (- (* 5 %) 3)) 2)))) 15 | (def octagonal (filter-4-digits (n-angle #(* % (- (* 3 %) 2))))) 16 | 17 | ;; Elapsed time: 138.196338 msecs 18 | (defn euler-061 [] 19 | (let [amap {:squ square :pen pentagonal :hex hexagonal :hep heptagonal :oct octagonal}] 20 | (first (for [n1 triangle :let [abn1 (quot n1 100) cdn1 (mod n1 100)] 21 | k2 (keys amap) n2 (filter #(= cdn1 (quot % 100)) (get amap k2)) 22 | :let [cdn2 (mod n2 100) amap2 (dissoc amap k2)] 23 | k3 (keys amap2) n3 (filter #(= cdn2 (quot % 100)) (get amap2 k3)) 24 | :let [cdn3 (mod n3 100) amap3 (dissoc amap2 k3)] 25 | k4 (keys amap3) n4 (filter #(= cdn3 (quot % 100)) (get amap3 k4)) 26 | :let [cdn4 (mod n4 100) amap4 (dissoc amap3 k4)] 27 | k5 (keys amap4) n5 (filter #(= cdn4 (quot % 100)) (get amap4 k5)) 28 | :let [cdn5 (mod n5 100) amap5 (dissoc amap4 k5)] 29 | n6 (filter #(and (= cdn5 (quot % 100)) (= abn1 (mod % 100))) (first (vals amap5))) 30 | :when (and n1 n2 n3 n4 n5 n6)] 31 | (+ n1 n2 n3 n4 n5 n6))))) -------------------------------------------------------------------------------- /src/project_euler/problem062.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn anagram-default [n1] 4 | (apply str (sort (str n1)))) 5 | 6 | (def cubes (map #(* % % %) (iterate inc 1))) 7 | 8 | ;; Elapsed time: 86.66619 msecs 9 | (defn euler-062 [] 10 | (loop [[c & cs] cubes mp {}] 11 | (let [angr (anagram-default c)] 12 | (if (= 4 (count (get mp angr []))) (reduce min (get mp angr)) 13 | (recur cs (assoc mp angr (conj (get mp angr []) c))))))) 14 | -------------------------------------------------------------------------------- /src/project_euler/problem063.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn pow [n e] 4 | (reduce *' (repeat e n))) 5 | 6 | ;; Elapsed time: 4.921157 msecs 7 | (defn euler-063 [] 8 | (loop [powers (iterate inc 1) 9 | [x & xs] (map #(pow % (first powers)) (iterate inc 1)) sum 0 hit false] 10 | (let [n (quot x (pow 10 (dec (first powers))))] 11 | (cond (< n 1) (recur powers xs sum hit) 12 | (< n 10) (recur powers xs (inc sum) true) 13 | :else (if hit (recur (rest powers) 14 | (map #(pow % (second powers)) (iterate inc 1)) 15 | sum false) sum))))) -------------------------------------------------------------------------------- /src/project_euler/problem064.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn continued-step [sq a n d] 4 | (if (= (* a a) sq) [a 0 0] 5 | (let [n-new (- (* a d) n) 6 | d-new (quot (- sq (* n-new n-new)) d) 7 | a-new (quot (+ (int (Math/sqrt sq)) n-new) d-new)] 8 | [a-new n-new d-new]))) 9 | 10 | (defn continued-fraction [sq] 11 | (iterate #(continued-step sq (nth % 0) (nth % 1) (nth % 2)) 12 | [(int (Math/sqrt sq)) 0 1])) 13 | 14 | (defn cycle-length [sq] 15 | (let [a (int (Math/sqrt sq))] 16 | (if (= (* a a) sq) 0 17 | (loop [[lc & lazy-cont] (continued-fraction sq) 18 | mpcl {} cl 1] 19 | (if (and (= (nth lc 0) -1) (= (nth lc 1) -1)) 0 20 | (let [mpkey (apply str (interpose "," lc))] 21 | (if (contains? mpcl mpkey) 22 | (- cl (get mpcl mpkey)) 23 | (recur lazy-cont (assoc mpcl mpkey cl) (inc cl))))))))) 24 | 25 | ;; Elapsed time: 2564.481559 msecs 26 | (defn euler-064 [] 27 | (count (filter odd? (map cycle-length (range 1 (inc 10000)))))) -------------------------------------------------------------------------------- /src/project_euler/problem065.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn convergent [n [s & sq]] 4 | (if (= n 1) s 5 | (+ s (/ 1 (convergent (dec n) sq))))) 6 | 7 | (defn sum-of-digits [n] 8 | (reduce + (map #(- (int %) 48) (seq (str n))))) 9 | 10 | (defn exp-seq-n [n] 11 | (let [v (if (= 2 (mod n 3)) 12 | (* 2 (+ 1 (quot n 3))) 1)] 13 | (cons v (lazy-seq (exp-seq-n (inc n)))))) 14 | 15 | (def exp-seq (cons 2 (exp-seq-n 1))) 16 | 17 | ;; Elapsed time: 1.544052 msecs 18 | (defn euler-065 [] 19 | (sum-of-digits (numerator (convergent 100 exp-seq)))) -------------------------------------------------------------------------------- /src/project_euler/problem066.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | ;; This Diophantine equation known as Pell's equation 4 | ;; http://en.wikipedia.org/wiki/Pell%27s_equation 5 | ;; 6 | ;; Let h_i/k_i denote the sequence of convergents to the continued fraction sqrt(n) 7 | ;; Then the pair (x,y) solving Pell's equation and minimizing x, 8 | ;; x = h_i, y = k_i. Fundamental solution. 9 | 10 | (defn square? [n] 11 | (let [a (int (Math/sqrt n))] 12 | (= n (* a a)))) 13 | 14 | (defn convergent [seq] 15 | "Number of convergents, sequence" 16 | (letfn [(partial-sum [fseq] 17 | (reduce #(+ (/ 1 %1) %2) (reverse fseq)))] ;; TODO improve performance 18 | (map #(partial-sum (take % seq)) (iterate inc 1)))) 19 | 20 | (defn continued-fraction-sqroot-seq [n] 21 | "TODO document" 22 | (let [a0 (int (Math/sqrt n))] 23 | (letfn [(next-frac [a m d] 24 | (let [m1 (- (* a d) m) 25 | d1 (/ (- n (* m1 m1)) d) 26 | a1 (quot (+ a0 m1) d1)] 27 | (cons a1 (lazy-seq (next-frac a1 m1 d1)))))] 28 | (if (= (* a0 a0) n) (list a0) 29 | (cons a0 (lazy-seq (next-frac a0 0 1))))))) 30 | 31 | (defn solution? [x y d] 32 | (zero? (- (* x x) 33 | (* d y y) 1))) 34 | 35 | (defn solve-fundamental [d] 36 | (numerator 37 | (first (filter #(solution? (numerator %) (denominator %) d) 38 | (filter ratio? 39 | (convergent (continued-fraction-sqroot-seq d))))))) 40 | 41 | ;; Elapsed time: 504.251763 msecs 42 | (defn euler-066 [] 43 | (apply max-key first 44 | (map #(list (solve-fundamental %) %) 45 | (filter (comp not square?) (range 1 1001))))) -------------------------------------------------------------------------------- /src/project_euler/problem067.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (def triangle 4 | (map #(Integer/parseInt %)(map #(reduce str %) (partition 2 2 (remove #(or (= \newline %) (= \ %)) 5 | (seq (slurp "res/problem067.txt"))))))) 6 | 7 | (def nested-triangle 8 | (loop [lst triangle n 1 newlist nil] 9 | (if (empty? lst) (reverse newlist) 10 | (recur (drop n lst) (inc n) (cons (take n lst) newlist))))) 11 | 12 | (defn max-row [lst] 13 | (map #(reduce max %) (partition 2 1 lst))) 14 | 15 | (defn step-max [lst1 lst2] 16 | (map + (max-row lst1) lst2)) 17 | 18 | ;; Elapsed time: 0.679205 msecs 19 | (defn euler-067 [] 20 | (reduce step-max (reverse nested-triangle))) -------------------------------------------------------------------------------- /src/project_euler/problem068.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:require [clojure.set :as sets]) 3 | (:require [clojure.contrib.combinatorics :as comb])) 4 | 5 | (defn selections [items n] 6 | (filter #(= n (count (distinct %))) 7 | (comb/selections items n))) 8 | 9 | (defn diff [items & ss] 10 | (apply sets/difference items (map set ss))) 11 | 12 | (defn start-from-min [arr] 13 | (let [[idx _] 14 | (apply min-key second (map-indexed vector (map first arr))) 15 | [a b] (split-at idx arr)] 16 | (concat b a))) 17 | 18 | ;; TODO optimize this problem 19 | (defn euler-068 [] 20 | (-> 21 | (let [items #{1 2 3 4 5 6 7 8 9 10}] 22 | (for [line1 (map vec (selections items 3)) :let [s (reduce + line1)] 23 | line2 (map vec (selections (diff items line1) 2)) 24 | :let [line2-true [(first line2) (nth line1 2) (second line2)]] 25 | :when (= s (reduce + line2-true)) 26 | line3 (map vec (selections (diff items line1 line2) 2)) 27 | :let [line3-true [(first line3) (nth line2 1) (second line3)]] 28 | :when (= s (reduce + line3-true)) 29 | line4 (map vec (selections (diff items line1 line2 line3) 2)) 30 | :let [line4-true [(first line4) (nth line3 1) (second line4)]] 31 | :when (= s (reduce + line4-true)) 32 | :let [e (first (diff items line1 line2 line3 line4)) 33 | line5-true [e (second line4) (second line1)]] 34 | :when (= s (reduce + line5-true))] 35 | (apply str (flatten (start-from-min [line1 line2-true line3-true line4-true line5-true]))))) 36 | distinct 37 | sort 38 | reverse 39 | first 40 | read-string)) 41 | -------------------------------------------------------------------------------- /src/project_euler/problem069.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:require [clojure.contrib.lazy-seqs :as lazy])) 3 | 4 | ;; phi(n) calculationg due to formula 5 | ;; phi(n) = n * product of (1 - 1/p_n) p_n - element from number factorization 6 | 7 | (defn factorize [n] 8 | (loop [[p & ps] lazy/primes num n fact []] 9 | (if (= 1 num) (distinct fact) 10 | (if (zero? (mod num p)) (recur lazy/primes (/ num p) (conj fact p)) 11 | (recur ps num fact))))) 12 | 13 | (defn phi [n] 14 | (reduce * n (map #(- 1 (/ 1 %)) (factorize n)))) 15 | 16 | ;; slow one 17 | (defn euler-069-slow [] 18 | (apply max-key second 19 | (for [i (range 1 10000)] 20 | [i (double (/ i (phi i)))]))) 21 | 22 | (defn euler-069 [] 23 | (last (take-while #(< % 1000000) (reductions * lazy/primes)))) -------------------------------------------------------------------------------- /src/project_euler/problem070.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) -------------------------------------------------------------------------------- /src/project_euler/problem071.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | ;; as bruteforce solution on farey sequence is very slow 4 | ;; we use property of 'Farey Pair' http://en.wikipedia.org/wiki/Farey_sequence#Farey_neighbours 5 | 6 | ;; a/b < c/d and they are neigbours 7 | ;; their difference 1/bd 8 | ;; bc - ad = 1 9 | ;; c/d is 3/7 10 | ;; 3b - 7a = 1 11 | ;; It's a diofantine equation 12 | ;; 13 | ;; a = (3b - 1) / 7 14 | ;; Solve it. 15 | 16 | (defn euler-071 [] 17 | (loop [b 1000000] 18 | (let [tmp (dec (* 3 b))] 19 | (if (zero? (rem tmp 7)) [(/ tmp 7) b] 20 | (recur (dec b)))))) 21 | -------------------------------------------------------------------------------- /src/project_euler/problem072.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:require [clojure.contrib.lazy-seqs :as lazy])) 3 | 4 | ;; Find the size of farey sequence 5 | 6 | (defn factorize [n] 7 | (loop [x n fact []] 8 | (if (= 1 x) fact 9 | (let [d (first (drop-while #(not (zero? (rem x %))) lazy/primes))] 10 | (recur (/ x d) (conj fact d)))))) 11 | 12 | (defn totient [n] 13 | (reduce * n (map #(- 1 (/ 1 %)) (distinct (factorize n))))) 14 | 15 | (defn euler-072 [] 16 | (reduce + (map totient (range 2 1000000)))) -------------------------------------------------------------------------------- /src/project_euler/problem073.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (defn farey [n] 4 | (letfn [(next-farey [r1 r2] 5 | (let [[a b] r1 [c d] r2 6 | k (quot (+ n b) d) 7 | next-term [(- (* k c) a) (- (* k d) b)]] 8 | (if (<= (first next-term) n) 9 | (cons next-term (lazy-seq (next-farey r2 next-term))))))] 10 | (let [a 0 b 1 c 1 d n] 11 | (concat [[a b] [c d]] (lazy-seq (next-farey [a b] [c d])))))) 12 | 13 | (defn euler-073 [] 14 | (take-while #(< % (/ 1 2)) 15 | (drop-while #(< % (/ 1 3)) (map #(apply / %) (farey 100))))) -------------------------------------------------------------------------------- /src/project_euler/problem079.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem079) 2 | 3 | (defn orderings 4 | ([onenum] [onenum]) 5 | ([basenum num] (orderings [] basenum num)) 6 | ([prefix basenum num] 7 | (cond 8 | (and (empty? basenum) (empty? num)) [prefix] 9 | (empty? basenum) (orderings (conj prefix (first num)) basenum (rest num)) 10 | (empty? num) (orderings (conj prefix (first basenum)) (rest basenum) num) 11 | :else (concat 12 | (orderings (conj prefix (first basenum)) (rest basenum) num) 13 | (orderings (conj prefix (first num)) basenum (rest num)))))) 14 | 15 | (defn simplify [ordering] 16 | (->> ordering 17 | (partition-by identity) 18 | (map first) 19 | (into []))) 20 | 21 | (defn orderings-simplified [orderings] 22 | (->> orderings 23 | (mapv simplify) 24 | ((fn [ords] 25 | (let [mincount (apply min (map count ords))] 26 | (filterv #(= mincount (count %)) ords)))) 27 | (distinct) 28 | (into []))) 29 | 30 | (defn advance-secret [best-orderings next] 31 | (let [to-digits (fn [n] (into [] (map #(- (int %) 48) (str n))))] 32 | (cond 33 | (empty? best-orderings) (orderings (to-digits next)) 34 | :else 35 | ;; for each ordering merge it with current, concat all and simplify 36 | (->> (for [o best-orderings] 37 | (orderings-simplified (orderings o (to-digits next)))) 38 | (apply concat) 39 | (orderings-simplified))))) 40 | 41 | (defn find-password [] 42 | (apply str (first (reduce #(advance-secret %1 %2) nil guesses)))) 43 | 44 | 45 | 46 | 47 | (def guesses 48 | [319 49 | 680 50 | 180 51 | 690 52 | 129 53 | 620 54 | 762 55 | 689 56 | 762 57 | 318 58 | 368 59 | 710 60 | 720 61 | 710 62 | 629 63 | 168 64 | 160 65 | 689 66 | 716 67 | 731 68 | 736 69 | 729 70 | 316 71 | 729 72 | 729 73 | 710 74 | 769 75 | 290 76 | 719 77 | 680 78 | 318 79 | 389 80 | 162 81 | 289 82 | 162 83 | 718 84 | 729 85 | 319 86 | 790 87 | 680 88 | 890 89 | 362 90 | 319 91 | 760 92 | 316 93 | 729 94 | 380 95 | 319 96 | 728 97 | 716]) 98 | -------------------------------------------------------------------------------- /src/project_euler/problem092.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem092) 2 | 3 | (def cache (atom {1 1 4 | 89 89})) 5 | 6 | (defn advance [n] 7 | (->> n 8 | (str) 9 | (map #(- (int %) 48)) 10 | (map #(* % %)) 11 | (reduce +))) 12 | 13 | (defn last-chain 14 | ([n] (last-chain n [] #{1 89})) 15 | ([n nums sets] 16 | (cond 17 | ;; chain finished? 18 | (sets n) (do ;; add numbers 19 | (doseq [nn nums] (swap! cache assoc nn (sets n))) 20 | ;; return last 21 | (sets n)) 22 | :else 23 | (let [cnum (get @cache n)] 24 | (if cnum 25 | (do 26 | (doseq [nn nums] (swap! cache assoc nn cnum)) 27 | cnum) 28 | ;; not in cache 29 | (do (last-chain (advance n) (conj nums n) (conj sets n)))))))) 30 | 31 | 32 | (defn solve [] 33 | (loop [[i & rst] (range 1 10000000) cnt89 0] 34 | (if i 35 | (do (when (zero? (mod i 10000)) (println i)) 36 | (let [end (last-chain i)] 37 | (if (= end 89) 38 | (recur rst (inc cnt89)) 39 | (recur rst cnt89)))) 40 | ; else 41 | cnt89 42 | ))) 43 | -------------------------------------------------------------------------------- /src/project_euler/problem100.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.problem100) 2 | 3 | (defn score [n blue] 4 | (/ (* blue (dec blue)) (* n (dec n)))) 5 | 6 | (defn is50? [n blue] 7 | (= (* 2 blue (dec blue)) 8 | (* n (dec n)))) 9 | 10 | (defn report [max] 11 | (doseq [n (range 2 max)] 12 | (doseq [blue (range 1 (dec n))] 13 | (let [score (score n blue)] 14 | (when (is50? n blue) (print "MATCH >> ")) 15 | (print 16 | (format "N=%d, B/R=[%d,%d], SCORE=%.2f\n" 17 | n blue (- n blue) (double score))))))) 18 | 19 | 20 | ;; Simple bruteforce over N and B 21 | ;; is too much and quadratic complexity, let's simplify 22 | ;; 23 | ;; B - blue, N - total 24 | ;; 25 | ;; (B*(B-1))/(N*(N-1)) = 1/2 26 | ;; or 27 | ;; B^2 - B - ((N*(N-1))/2) = 0 28 | ;; 29 | ;; Solve this quadratic equation in terms of B 30 | ;; 31 | ;; D = b^2 - 4ac = (-1)^2 - 4*1*(-((N*(N-1))/2)) = 1 + 2 * N * (N - 1) 32 | ;; 33 | ;; B1,2 = (-b +- sqrt(D)) / 2a = (1 +- SQRT(D)) / 2 34 | ;; 35 | ;; Observation #1: B must be integer, so D should be PERFECT SQUARE 36 | ;; Observation #2: B must be integer so SQRT(D) should be ODD 37 | ;; 38 | ;; If D is perfect square of some number, say S 39 | ;; D = S^2 = 1 + 2 * N * (N - 1) 40 | ;; 41 | ;; We have a constraint N > 10^12 42 | ;; S^2 = 1 + 2 * 10^12 * (10^12 - 1) 43 | 44 | (def S (long (Math/sqrt (+' 1 45 | (*' 2 46 | (reduce *' (repeat 12 10)) ;; 10^12 47 | (-' (reduce *' (repeat 12 10)) 1)) ;; 10^12 -1 48 | )))) 49 | 50 | ;; S => 1414213562327 51 | ;; Start iterating from this number 52 | ;; B = (1 + S) / 2 53 | ;; So, iterate only on odd, 1,3,5,7 54 | ;; for every S 55 | ;; calculate B as = (1+S)/2 56 | ;; calculate N as ... 57 | ;; 58 | ;; We defined S^2 = 2N^2 - 2N + 1 59 | ;; or 60 | ;; 2N^2 - 2N - (S^2 - 1) = 0 61 | ;; Solve this quadratic equation in terms of N 62 | ;; 63 | ;; D = b^2 - 4ac = (-2)^2 - 4 * 2 * (-1) * (S^2 -1) 64 | ;; D = 4 + 8 (S^2 -1) = 4 + 8S^2 - 8 = 8S^2 - 4 = 4 * (2S^2 - 1) 65 | ;; N = 2 + sqrt(4 * (2S^2 - 1)) / 4 = 1 + SQRT(2S^2 - 1) / 2 66 | ;; 67 | ;; 2S^2 - 1 = K^2 68 | ;; 2S^2 - 1 should be a perfect square as well... 69 | ;; 70 | ;; s, whivh produce perfect sequence 2S^2 -1 71 | ;; https://oeis.org/search?q=1%2C5%2C29&sort=&language=&go=Search 72 | ;; defined by fromula 73 | ;; s(1) = 1 74 | ;; s(2) = 5 75 | ;; s(n) = 6 * s(n-1) - s(n-2) 76 | 77 | 78 | (defn perfect-square? [n] 79 | (let [sqrt (bigint (Math/sqrt n))] 80 | (= n (*' sqrt sqrt)))) 81 | 82 | (defn quess-sqroot [s]) 83 | 84 | (defn solve [] 85 | (let [mins 1414213562327 86 | afn (fn [a b] (- (* 6 b) a))] 87 | (loop [[a s] [1 5] [b k] [1 7]] 88 | (cond (>= s mins) 89 | (let [b (/ (+' 1 s) 2)] {:s s :b b :k k}) 90 | :else (recur [s (afn a s)] 91 | [k (afn b k)]))))) 92 | 93 | ;; Done. 94 | -------------------------------------------------------------------------------- /src/project_euler/problem108.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler 2 | (:require [clojure.contrib.math :as m])) 3 | 4 | (defn num-of-sums-stupid [n] 5 | (for [x (range 1 (inc (* n n))) 6 | y (range 1 (inc (* n n))) 7 | :when (= (/ 1 n) (+ (/ 1 x) (/ 1 y)))] 8 | [x y])) 9 | -------------------------------------------------------------------------------- /src/project_euler/problem213.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler) 2 | 3 | (def GRID_SIZE 30) 4 | 5 | (defn init-field [] 6 | (vec (map vec (repeat GRID_SIZE (repeat GRID_SIZE 1))))) 7 | 8 | (defn move [field from to] 9 | (-> field 10 | (update-in from dec) 11 | (update-in to inc))) 12 | 13 | (defn wrong-cell? [[x y]] 14 | (or (< x 0) (>= x GRID_SIZE) 15 | (< y 0) (>= y GRID_SIZE))) 16 | 17 | (defn random-move [field from] 18 | (let [[x y] from 19 | cells [[x (inc y)] [x (dec y)] [(inc x) y] [(dec x) y]] 20 | rand-to (rand-nth (remove wrong-cell? cells))] 21 | (move field from rand-to))) 22 | 23 | (defn who-moves [field] 24 | (apply concat 25 | (for [i (range GRID_SIZE) j (range GRID_SIZE)] 26 | (repeat (get-in field [i j]) [i j])))) 27 | 28 | (defn bell [field] 29 | (let [cells (who-moves field)] 30 | (reduce random-move field cells))) 31 | 32 | (defn experiment [] 33 | (unoccupied-count (first (drop 50 (iterate bell (init-field)))))) 34 | 35 | (defn unoccupied-count [field] 36 | (count (filter zero? (flatten field)))) 37 | 38 | (defn euler-213 [n] 39 | (double (/ (reduce +' 40 | (for [i (range n)] 41 | (experiment))) 42 | n))) 43 | -------------------------------------------------------------------------------- /target/stale/dependencies: -------------------------------------------------------------------------------- 1 | ([:dependencies [[org.clojure/tools.nrepl "0.2.0-beta9" :exclusions [org.clojure/clojure]] [clojure-complete "0.2.1" :exclusions [org.clojure/clojure]] [org.clojure/clojure "1.3.0"] [org.clojure/clojure-contrib "1.2.0"]]]) -------------------------------------------------------------------------------- /test/project_euler/test/core.clj: -------------------------------------------------------------------------------- 1 | (ns project-euler.test.core 2 | (:use [project-euler.core]) 3 | (:use [clojure.test])) 4 | 5 | (deftest replace-me ;; FIXME: write 6 | (is false "No tests have been written.")) 7 | --------------------------------------------------------------------------------