#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int INF = INT_MAX / 2; int solve(int x) { if(x < 0) return INF; else if(x < 5) return x; else return x - 4; } int main() { string s; cin >> s; int n = s.size(); vector dp(2, 0); dp[1] = 1; for(int i=0; i nextDp(2, INF); for(int a=0; a<2; ++a){ for(int b=0; b<10; ++b){ int x = a * 10 + b - (s[i] - '0'); nextDp[0] = min(nextDp[0], dp[a] + solve(b) + solve(x)); nextDp[1] = min(nextDp[1], dp[a] + solve(b) + solve(x - 1)); } } dp.swap(nextDp); } cout << dp[0] << endl; return 0; }