Return to problem list2016-1A Problem A
Final solution
func start() {
}
func test() {
s := mustReadLine()
if len(s) == 0 {
stdout.WriteByte('\n')
return
}
buffer := make([]byte, len(s)*2)
startPtr := len(s)
l := 0
for ; l < len(s); l++ {
if l == 0 {
buffer[startPtr] = s[0]
continue
}
charToAdd := s[l]
if charToAdd >= buffer[startPtr] {
startPtr--
buffer[startPtr] = charToAdd
} else {
buffer[startPtr+l] = charToAdd
}
}
stdout.WriteString(string(buffer[startPtr : startPtr+l]))
stdout.WriteByte('\n')
}
Sample test cases given in question
7
CAB
JAM
CODE
ABAAB
CABCBBABC
ABCABCABC
ZXCASDQWE