🫥

AtCoder Beginner Contest 389

2025/01/24に公開

明日開催なので前回分をC問題まで解きました

A問題

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var s string
	fmt.Scan(&s)
	srune := []rune(s)

	i, _ := strconv.Atoi(string(srune[0]))

	i2, _ := strconv.Atoi(string(srune[2]))

	ans := i * i2

	fmt.Println(ans)

}

B問題

package main

import (
	"fmt"
)

func main() {
	var x int
	fmt.Scan(&x)

	dd := 2

	for i := 0; i < 20; i++ {
		x = x / dd
		if x == 1 {
			ans := dd
			fmt.Println(ans)
			break
		}
		dd++
	}

}

C問題

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	var q int
	fmt.Scan(&q)

	reader := bufio.NewReaderSize(os.Stdin, 1<<20)

	now := 0
	ls := make([]int, 0)
	m := 0

	for i := 0; i < q; i++ {
		line, _ := reader.ReadString('\n')
		line = strings.TrimSpace(line)
		parts := strings.Split(line, " ")
		command, _ := strconv.Atoi(parts[0])

		switch command {
		case 1:
			l, _ := strconv.Atoi(parts[1])
			ls = append(ls, now)
			now += l
		case 2:
			m++
		case 3:
			d, _ := strconv.Atoi(parts[1])
			ans := (ls[d+m-1] - ls[m])
			fmt.Println(ans)
		}

	}

}

以上です

Discussion