提出 #25056816


ソースコード 拡げる

package main

import (
	"bufio"
	"fmt"
	"log"
	"math"
	"os"
	"strconv"
)

var scanner = bufio.NewScanner(os.Stdin)

func AnswerC(N int, S, T []int) []int {
	dp := make([]int, N)
	dp[0] = 1e+9 + 10
	for i := 0; i < N; i++ {
		dp[i] = T[i]
	}

	var count int
	for i := 1; i <= 2*N; i++ {
		if count > 2*N {
			break
		}
		count++
		i = i % N
		j := (i + 1) % N

		dp[j] = Min(
			dp[j],
			dp[i]+S[i],
		)
	}

	return dp
}

func main() {
	scanner.Split(bufio.ScanWords)
	scanner.Buffer([]byte{}, math.MaxInt32)

	N := getInt()
	S := getInts(N)
	T := getInts(N)

	dp:=AnswerC(N, S, T)
	for _, d := range dp {
		fmt.Println(d)
	}
}

func AbsInt(x int) int {
	if x < 0 {
		return -x
	} else {
		return x
	}
}

func Min(x, y int) int {
	if x < y {
		return x
	} else {
		return y
	}
}

func Max(x, y int) int {
	if x < y {
		return y
	} else {
		return x
	}
}

func FindMax(nums []int) int {
	var max = -math.MaxInt32
	for _, n := range nums {
		if max < n {
			max = n
		}
	}
	return max
}

// 入力受け取り用の汎用関数群
func getInt() int {
	scanner.Scan()

	i, err := strconv.Atoi(scanner.Text())
	if err != nil {
		log.Fatal(err)
	}

	return i
}

func getInts(size int) []int {
	ints := make([]int, size)

	for i := 0; i < size; i++ {
		ints[i] = getInt()
	}

	return ints
}

func getFloat() float64 {
	scanner.Scan()

	float, err := strconv.ParseFloat(scanner.Text(), 64)
	if err != nil {
		log.Fatal(err)
	}

	return float
}

func getFloats(size int) []float64 {
	floats := make([]float64, size)

	for i := 0; i < size; i++ {
		floats[i] = getFloat()
	}

	return floats

}

func getInt64() int64 {
	scanner.Scan()

	i, err := strconv.Atoi(scanner.Text())
	if err != nil {
		log.Fatal(err)
	}

	return int64(i)
}

func getInt64s(size int) []int64 {
	ints := make([]int64, size)

	for i := 0; i < size; i++ {
		ints[i] = getInt64()
	}

	return ints
}

func getString() string {
	scanner.Scan()

	return scanner.Text()
}

func getStrings(size int) []string {
	S := make([]string, size)

	for i := 0; i < size; i++ {
		S[i] = getString()
	}

	return S
}

func getTuples(size int, tupleSize int) [][]int {
	tuples := make([][]int, size)

	for i := 0; i < size; i++ {
		tuples[i] = make([]int, tupleSize)
		for j := 0; j < tupleSize; j++ {
			tuples[i][j] = getInt()
		}
	}
	return tuples
}

提出情報

提出日時
問題 C - Distribution
ユーザ gohira
言語 Go (1.14.1)
得点 300
コード長 2475 Byte
結果 AC
実行時間 382 ms
メモリ 10692 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 4
AC × 32
セット名 テストケース
Sample sample_00.txt, sample_01.txt, sample_02.txt, sample_03.txt
All case_00.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, case_27.txt, sample_00.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
case_00.txt AC 377 ms 9872 KiB
case_01.txt AC 382 ms 10692 KiB
case_02.txt AC 52 ms 3164 KiB
case_03.txt AC 6 ms 1872 KiB
case_04.txt AC 189 ms 6268 KiB
case_05.txt AC 73 ms 3928 KiB
case_06.txt AC 272 ms 8340 KiB
case_07.txt AC 141 ms 6040 KiB
case_08.txt AC 241 ms 7244 KiB
case_09.txt AC 363 ms 9720 KiB
case_10.txt AC 29 ms 2304 KiB
case_11.txt AC 115 ms 5328 KiB
case_12.txt AC 103 ms 4868 KiB
case_13.txt AC 327 ms 9664 KiB
case_14.txt AC 14 ms 2024 KiB
case_15.txt AC 171 ms 6968 KiB
case_16.txt AC 208 ms 6280 KiB
case_17.txt AC 232 ms 7136 KiB
case_18.txt AC 273 ms 7168 KiB
case_19.txt AC 297 ms 8720 KiB
case_20.txt AC 303 ms 8796 KiB
case_21.txt AC 295 ms 8588 KiB
case_22.txt AC 369 ms 10444 KiB
case_23.txt AC 364 ms 10376 KiB
case_24.txt AC 366 ms 10372 KiB
case_25.txt AC 366 ms 10400 KiB
case_26.txt AC 367 ms 10412 KiB
case_27.txt AC 363 ms 10388 KiB
sample_00.txt AC 6 ms 1828 KiB
sample_01.txt AC 2 ms 1820 KiB
sample_02.txt AC 4 ms 1812 KiB
sample_03.txt AC 1 ms 1820 KiB