def main():
    N = "0" + input()
    N = list(map(int, N[::-1]))
    ans = 0
    up = 0
    for i, n in enumerate(N):
        d = n + up
        # くりあがりアリ
        if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
    print(ans)


if __name__ == '__main__':
    main() def main():
    N = "0" + input()
    N = list(map(int, N[::-1]))
    ans = 0
    up = 0
    for i, n in enumerate(N):
        d = n + up
        # くりあがりアリ
        if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
    print(ans) main N = "0" + input() N "0" + input() "0" input() input N = list(map(int, N[::-1])) N list(map(int, N[::-1])) list map(int, N[::-1]) map int N[::-1] N ::-1 -1 ans = 0 ans 0 up = 0 up 0 for i, n in enumerate(N):
        d = n + up
        # くりあがりアリ
        if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
     i n enumerate(N) enumerate N d = n + up d n + up n up if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
     d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5) d > 5 d 5 i < len(N) - 1 and d == 5 and N[i + 1] >= 5 i < len(N) - 1 and d == 5 i < len(N) - 1 i len(N) - 1 len(N) len N 1 d == 5 d 5 N[i + 1] >= 5 N[i + 1] N i + 1 i 1 5 ans += 10 - d ans 10 - d 10 d up = 1 up 1 ans += d ans d up = 0 up 0 print(ans) print ans if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def main():
    N = "0" + input()
    N = list(map(int, N[::-1]))
    ans = 0
    up = 0
    for i, n in enumerate(N):
        d = n + up
        # くりあがりアリ
        if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
    print(ans) def main():
    N = "0" + input()
    N = list(map(int, N[::-1]))
    ans = 0
    up = 0
    for i, n in enumerate(N):
        d = n + up
        # くりあがりアリ
        if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
    print(ans) main
def main():
    N = "0" + input()
    N = list(map(int, N[::-1]))
    ans = 0
    up = 0
    for i, n in enumerate(N):
        d = n + up
        # くりあがりアリ
        if d > 5 or (i < len(N) - 1 and d == 5 and N[i + 1] >= 5):
            ans += 10 - d  # 0枚の支払い（後に回す）、10-d枚のおつり
            up = 1
        # くりあがりナシ
        else:
            ans += d  # d枚の支払い、0枚のおつり
            up = 0
    print(ans)


if __name__ == '__main__':
    main()