#include <bits/stdc++.h>
using namespace std;
const int inf = 1001001001;
int main(){
	string str;
  	cin >> str;
  	vector<int> num;
  	for(int i=0;i<str.size();i++){
      num.push_back(str.at(i)-'0');
    }
  	
  	reverse(num.begin(),num.end());
  	num.push_back(0);
  	int n=num.size();	
  
  	// 下からi桁目までに使用する紙幣の最小
  	// j=0のときは繰り下がりなし、j=1のときは繰り下がりあり
  	vector<vector<int>> dp(n+1,vector<int>(2));
  	for(int i=0;i<n+1;i++){
      for(int j=0;j<2;j++){
        dp.at(i).at(j) = inf;
      }
    }
  	dp.at(0).at(0) = 0;
  
  	//状態(i,j)が確定しているときに状態(ni,nj)を計算する
  	for(int i=0;i<n;i++){
      for(int j=0;j<2;j++){
        int x = num.at(i);
        x += j;
        for(int a=0;a<10;a++){
          int ni = i+1;
          int nj = 0;
          int b = a-x;
          if(b<0){
            b += 10;
            nj = 1;
          }
          dp.at(ni).at(nj) = min( dp.at(ni).at(nj), dp.at(i).at(j)+a+b );
        }
      }
    }
  
  	//n桁全て確定したときに繰り下がりはあってはいけない
  	cout << dp.at(n).at(0) << endl;
  
  	return(0);
}
#include <iostream>
#include <fstream>
#include <set>
#include <map>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <functional>
#include <algorithm>
#include <climits>
#include <cmath>
#include <iomanip>
using namespace std;
#define ll long long int
#define rep(i,n) for( int i = 0; i < n; i++ )
#define rrep(i,n) for( int i = n; i >= 0; i-- )
#define REP(i,s,t) for( int i = s; i <= t; i++ )
#define RREP(i,s,t) for( int i = s; i >= t; i-- )
#define dump(x)  cerr << #x << " = " << (x) << endl;
#define INF 2000000000
#define mod 1000000007
#define INF2 1000000000000000000
#define int long long

signed main(void)
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    string S; cin >> S;
    S = "00" + S;
    int N = S.length();
    int ans = 0;
    for(int i = N - 1; i >= 0; i--) {
        if(S[i] > '9') {
            S[i - 1]++;
            S[i] -= 10;
        }
        if(S[i] <= '4' || (S[i] == '5' && S[i - 1] < '5')) {
            ans += S[i] - '0';
        } else {
            ans += 10 - (S[i] - '0');
            S[i - 1]++;
        }
    }
    cout << ans << endl;

    return 0;
}
