package main import ( "bufio" "fmt" "os" "strconv" "strings" ) var sc = bufio.NewScanner(os.Stdin) func NextLine() string { sc.Scan() return sc.Text() } func NextInt() int { a, _ := strconv.Atoi(NextLine()) return a } /** * スペース区切りで文字列を受け取って整数を2個返す */ func GetTwoInts() (a int, b int) { str := strings.Split(NextLine(), " ") a, _ = strconv.Atoi(str[0]) b, _ = strconv.Atoi(str[1]) return } func main() { N, D := GetTwoInts() fmt.Println(sToAABBCC(N, D)) } /** * 文字列 */ func sToAABBCC(N int, D int) (result string) { result = "" appender := "A" //最後の桁が2か1か0になれば良い //効率化の手段として残り桁数が3のとき残り数値が3ならAで埋めれば良い、残り数値が6ならBで埋めれば良い for i:=0; i< N; i++ { if D == 2 * (N - i){ //fmt.Println("残りはBで埋められます", D) appender = "B" }else if D == 0 { //fmt.Println("残りはCで埋められます", D) appender = "C" } D-- //fmt.Print(D) result += appender } return }