Problem:
Score : 200 points

Problem Statement

Given are strings S and T. Consider changing S to T by repeating the operation below. Find the minimum number of operations required to do so.

Operation: Choose one character of S and replace it with a different character.

Constraints

S and T have lengths between 1 and 2\times 10^5 (inclusive).

S and T consists of lowercase English letters.

S and T have equal lengths.

Input

Input is given from Standard Input in the following format:

S
T

Output

Print the answer.

Sample Input 1

cupofcoffee
cupofhottea

Sample Output 1

4

We can achieve the objective in four operations, such as the following:

First, replace the sixth character c with h.

Second, replace the eighth character f with t.

Third, replace the ninth character f with t.

Fourth, replace the eleventh character e with a.

Sample Input 2

abcde
bcdea

Sample Output 2

5

Sample Input 3

apple
apple

Sample Output 3

0

No operations may be needed to achieve the objective.

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

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;


namespace atc
{

    class Program
    {
        static T Read<T>()
        {
            Func<string, T> convFunc = null;
            if (typeof(T) == typeof(int)) convFunc = (_) => { return (T)(object)(int.Parse(_)); };
            else if (typeof(T) == typeof(Int16)) convFunc = (_) => { return (T)(object)(Int16.Parse(_)); };
            else if (typeof(T) == typeof(UInt16)) convFunc = (_) => { return (T)(object)(UInt16.Parse(_)); };
            else if (typeof(T) == typeof(Int32)) convFunc = (_) => { return (T)(object)(Int32.Parse(_)); };
            else if (typeof(T) == typeof(UInt32)) convFunc = (_) => { return (T)(object)(UInt32.Parse(_)); };
            else if (typeof(T) == typeof(Int64)) convFunc = (_) => { return (T)(object)(Int64.Parse(_)); };
            else if (typeof(T) == typeof(UInt64)) convFunc = (_) => { return (T)(object)(UInt64.Parse(_)); };
            else if (typeof(T) == typeof(float)) convFunc = (_) => { return (T)(object)(float.Parse(_)); };
            else if (typeof(T) == typeof(double)) convFunc = (_) => { return (T)(object)(double.Parse(_)); };
            return convFunc(Console.ReadLine());
        }

        static List<T> ReadVec<T>()
        {
            Func<string, T> convFunc = null;
            if (typeof(T) == typeof(int)) convFunc = (_) => { return (T)(object)(int.Parse(_)); };
            else if (typeof(T) == typeof(Int16)) convFunc = (_) => { return (T)(object)(Int16.Parse(_)); };
            else if (typeof(T) == typeof(UInt16)) convFunc = (_) => { return (T)(object)(UInt16.Parse(_)); };
            else if (typeof(T) == typeof(Int32)) convFunc = (_) => { return (T)(object)(Int32.Parse(_)); };
            else if (typeof(T) == typeof(UInt32)) convFunc = (_) => { return (T)(object)(UInt32.Parse(_)); };
            else if (typeof(T) == typeof(Int64)) convFunc = (_) => { return (T)(object)(Int64.Parse(_)); };
            else if (typeof(T) == typeof(UInt64)) convFunc = (_) => { return (T)(object)(UInt64.Parse(_)); };
            else if (typeof(T) == typeof(float)) convFunc = (_) => { return (T)(object)(float.Parse(_)); };
            else if (typeof(T) == typeof(double)) convFunc = (_) => { return (T)(object)(double.Parse(_)); };
            return Console.ReadLine().Split(' ').Select(s => (T)convFunc(s)).ToList();
        }

        static void Main(string[] args)
        {
            var s = Console.ReadLine();
            var t = Console.ReadLine();

            var length = s.Length;
            var count = 0;

            var sa = s.ToCharArray();
            var ta = t.ToCharArray();
            for(var i = 0; i < length; i++)

            {
                if (sa[i] != ta[i]) count++;
            }



            Console.WriteLine(count);
        }
    }
}