Return to problem list

2019-qual Problem A

Final solution

cmd.go:
save   open on GitHub
// package, import, etc...

func start() {
	var t int
	mustReadLineOfInts(&t)
	for i := 0; i < t; i++ {
		n := mustReadLine()
		stdout.WriteString("Case #")
		stdout.WriteString(strconv.Itoa(i + 1))
		stdout.WriteString(": ")
		bNum := make([]bool, len(n))
		for i := 0; i < len(n); i++ {
			if n[i] == '4' {
				bNum[i] = true
				stdout.WriteByte('3')
			} else {
				stdout.WriteByte(byte(n[i]))
			}
		}
		stdout.WriteString(" ")
		initialDigitWritten := false
		for i := 0; i < len(bNum); i++ {
			if !bNum[i] {
				if initialDigitWritten {
					stdout.WriteByte('0')
				}
			} else {
				initialDigitWritten = true
				stdout.WriteByte('1')
			}
		}
		if !initialDigitWritten {
			stdout.WriteByte('0')
		}
		stdout.WriteByte('\n')
	}
}

// boilerplate omitted...

Sample test cases given in question

sample.in:
save   open on GitHub
3
4
940
4444