#include #include #include #include using namespace std; long long dp[20202][2]; int main() { string s; cin >> s; reverse(s.begin(), s.end()); s += string(123, '0'); const int n = s.size(); for (int i = 0; i < 20202; i++) { for (int j = 0; j < 2; j++) { dp[i][j] = 1e18; } } dp[0][0] = 0; for (int i = 0; i < n; i++) { int v = s[i] - '0'; for (int j = 0; j < 2; j++) { for (int k = 0; k < 10; k++) { int cost = k / 5 + k % 5; int t = k - v - j; if (t >= 0) { dp[i + 1][0] = min(dp[i + 1][0], dp[i][j] + cost + t / 5 + t % 5); } else { t += 10; dp[i + 1][1] = min(dp[i + 1][1], dp[i][j] + cost + t / 5 + t % 5); } } } } cout << dp[n][0] << endl; }