import java.util.Scanner; import java.lang.Math; public class mees_string { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int n = s.length(); int bb = 0; int ba = 100; for(int i = 0; i < n; i++) { int d = (int)(s.charAt(i) - '0'); int nbb = Math.min(Math.min(ba + d + 1, ba + 10 - d), Math.min(bb + d, bb + 11 - d)); int nba = Math.min(Math.min(bb + d + 1, bb + 10 - d), Math.min(ba + d + 2, ba + 9 - d)); bb = nbb; ba = nba; } System.out.println(Math.min(bb, ba + 1)); } } /* #include #include #include #include #include #include #include #include using namespace std; int main (void) { string S; cin >> S; long long bestBelow = 0; long long bestAbove = 100; int n = S.length(); for (int i = 0; i < n; i++) { int d = S[i] - '0'; long long newBestBelow = min( min( bestBelow + d , bestBelow + 11 - d ), min( bestAbove + d + 1, bestAbove + 10 - d )); long long newBestAbove = min( min( bestBelow + d + 1, bestBelow + 10 - d ), min( bestAbove + d + 2, bestAbove + 9 - d )); bestBelow = newBestBelow; bestAbove = newBestAbove; } cout << min(bestBelow, bestAbove+1) << "\n"; return 0; } */