| 121 | } |
| 122 | |
| 123 | static bool ChecksumIsValid(Pair leftPair, Pair rightPair) |
| 124 | { |
| 125 | auto checksum = [](Pair p) { return p.left.checksum + 4 * p.right.checksum; }; |
| 126 | int a = (checksum(leftPair) + 16 * checksum(rightPair)) % 79; |
| 127 | int b = 9 * (std::abs(leftPair.finder) - 1) + (std::abs(rightPair.finder) - 1); |
| 128 | if (b > 72) |
| 129 | b--; |
| 130 | if (b > 8) |
| 131 | b--; |
| 132 | return a == b; |
| 133 | } |
| 134 | |
| 135 | static std::string ConstructText(Pair leftPair, Pair rightPair) |
| 136 | { |