Пример #1
0
def solve():
    """Main function"""
    grid = []
    res = 0
    max_adj = 4
    text = slurp_file("p011.txt")

    for row in text.split("\n"):
        grid.append([int(x) for x in row.split(" ")])

    len_grid = len(grid)

    # Horizontal
    for i in xrange(len_grid):
        for j in xrange(len_grid - max_adj):
            res = max(res, mul([grid[i][j + x] for x in xrange(max_adj)]))

    # Vertical
    for i in xrange(len_grid):
        for j in xrange(len_grid - max_adj):
            res = max(res, mul([grid[j + x][i] for x in xrange(max_adj)]))

    # Diag 1
    for i in xrange(len_grid - max_adj):
        for j in xrange(len_grid - max_adj):
            res = max(res, mul([grid[i + x][j + x] for x in xrange(max_adj)]))

    # Diag 2
    for i in xrange(max_adj - 1, len_grid - max_adj):
        for j in xrange(len_grid - max_adj):
            res = max(res, mul([grid[i - x][j + x] for x in xrange(max_adj)]))

    return res
Пример #2
0
def solve():
    '''Main function'''

    text = slurp_file('p013.txt')
    digits = 10
    total = sum([int(x) for x in text.split('\n')])

    return int(str(total)[:digits])
Пример #3
0
def solve():
    '''Main function'''

    text = slurp_file('p022_names.txt')
    names = sorted(text.split(','))
    values = {x: ord(x) - 64 for x in ascii_uppercase}
    count = 0

    for i, name in enumerate(names):
        name = name.replace('"', '')
        count += (i + 1) * sum([values[x] for x in name])

    return count