Problem:
Score : 200 points

Problem Statement

Given are two strings S and T.

Let us change some of the characters in S so that T will be a substring of S.

At least how many characters do we need to change?

Here, a substring is a consecutive subsequence. For example, xxx is a substring of yxxxy, but not a substring of xxyxx.

Constraints

The lengths of S and T are each at least 1 and at most 1000.

The length of T is at most that of S.

S and T consist of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S
T

Output

Print the minimum number of characters in S that need to be changed.

Sample Input 1

cabacc
abc

Sample Output 1

1

For example, changing the fourth character a in S to c will match the second through fourth characters in S to T.

Since S itself does not have T as its substring, this number of changes - one - is the minimum needed.

Sample Input 2

codeforces
atcoder

Sample Output 2

6

Solution in C# (.NET Core 3.1.201) (judge verdict: Wrong Answer)

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Numerics;

namespace abc177
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false });
            if (File.Exists("input.txt"))
            {
                Console.SetIn(new StreamReader("input.txt"));
            }
            solve_abc177B();
            Console.Out.Flush();
        }

        public static void solve_abc177B()
        {
            string s = Console.ReadLine();
            string t = Console.ReadLine();
            int min = int.MaxValue;
            for (int i = 0; i < s.Length - t.Length; i++)
            {
                int cnt = 0;
                int j = 0;
                while (j < t.Length)
                {
                    if (s[i + j] != t[j])
                    {
                        cnt++;
                    }
                    j++;
                }
                min = Math.Min(min, cnt);
            }
            Console.WriteLine(min);
        }

        public static void solve_abc177A()
        {
            int[] dts = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            int d = dts[0];
            int t = dts[1];
            int s = dts[2];
            double taken = (double)d / s;
            Console.WriteLine(taken > t ? "No" : "Yes");
        }

        public static int binSerachLeft(int[] a, int x)
        {
            int l = -1;
            int r = a.Length;
            while (r > l + 1)
            {
                int m = (l + r) / 2;
                if (a[m] <= x)
                {
                    l = m;
                }
                else
                {
                    r = m;
                }
            }
            return l;
        }
    }
}