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 Go (1.14.1) (judge verdict: Wrong Answer)

package main

import (
	"bufio"
	"fmt"
	basicIO "io"
	"os"
	"strconv"
)

func main() {
	protagonist(os.Stdin, os.Stdout)
}

func protagonist(r basicIO.Reader, w basicIO.Writer) {
	io := NewIO(r, w)

	S := io.readString()
	T := io.readString()

	count := 0
	for i := 0; i < len(S); i++ {
		if S[i] != T[i] {
			count++
		}
	}
	io.putInt(count)
}

type IO struct {
	Scanner *bufio.Scanner
	Writer  basicIO.Writer
}

func NewIO(r basicIO.Reader, w basicIO.Writer) *IO {
	s := bufio.NewScanner(r)
	s.Split(bufio.ScanWords)
	return &IO{
		Scanner: s,
		Writer:  w,
	}
}

func (io *IO) readString() string {
	io.Scanner.Scan()
	return io.Scanner.Text()
}

func (io *IO) readStringSlice(num int) []string {
	slice := make([]string, num)
	for i, _ := range slice {
		slice[i] = io.readString()
	}
	return slice
}

func (io *IO) readInt() int {
	io.Scanner.Scan()
	i, _ := strconv.Atoi(io.Scanner.Text())
	return i
}

func (io *IO) readIntArray(num int) []int {
	slice := make([]int, num)
	for i, _ := range slice {
		slice[i] = io.readInt()
	}
	return slice
}

func (io *IO) putInt(v int) {
	fmt.Fprintf(io.Writer, "%d\n", v)
}

func (io *IO) putString(s string) {
	fmt.Fprintf(io.Writer, "%s\n", s)
}