function Main(input) {
    input = input.trim().split("\n").map(function(x) { return x.split(" ")});
    var N = input[0][0];
    var l = N.length;
    var vec_tf = Array.from({length: l}, () => false);
    var num;
    for (var i = 0; i < l; i++){
        num = parseInt(N.substr(i, 1), 10);
        if (num === 5){
            if ((i - 1 >= 0 && (parseInt(N.substr(i - 1, 1), 10) >= 5)) || (i + 1 < l && (parseInt(N.substr(i + 1, 1), 10) >= 5))){
                vec_tf[i] = true;
            }
        }
    }
    for (var i = 0; i < l; i++){
        num = parseInt(N.substr(i, 1), 10);
        if (num >= 6){
            vec_tf[i] = true;
        } else if (num === 4){
            if (((i - 1 >= 0 && (vec_tf[i - 1] || parseInt(N.substr(i - 1, 1), 10) >= 6)) && (i + 1 < l && (vec_tf[i + 1] || parseInt(N.substr(i + 1, 1), 10) >= 6)))){
                vec_tf[i] = true;
            }
        }
    }     
    
    var ans = 0;
    var reset = true;
    for (var i = 0; i < l; i++){
        num = parseInt(N.substr(i, 1), 10);
        if (vec_tf[i]) {
            ans += (9 - num);
            if (reset) {
                ans ++;
                reset = false;
            }
        } else {
            ans += num;
            if (!reset) {
                ans++;
                reset = true;
            }
        }
    }
    if (!reset) ans++;
    console.log(ans);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8")); 