Submission #67462298
Source Code Expand
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func min(a, b int) int {
if a < b {
return a
}
return b
}
func main() {
reader := bufio.NewReader(os.Stdin)
// 1行目:N
line1, _ := reader.ReadString('\n')
N, _ := strconv.Atoi(strings.TrimSpace(line1))
// 2行目:h[0]~h[N-1]
line2, _ := reader.ReadString('\n')
hStr := strings.Fields(line2)
h := make([]int, N)
for i := 0; i < N; i++ {
h[i], _ = strconv.Atoi(hStr[i])
}
if N == 2 {
fmt.Println(abs(h[1] - h[0]))
return
}
var prev2 int = 0 // dp[i-2]
var prev1 int = abs(h[1] - h[0]) // dp[i-1]
for i := 2; i < N; i++ {
cost1 := prev1 + abs(h[i]-h[i-1])
cost2 := prev2 + abs(h[i]-h[i-2])
curr := min(cost1, cost2)
prev2 = prev1
prev1 = curr
}
fmt.Println(prev1)
}
func abs(a int) int {
if a < 0 {
return -a
}
return a
}
Submission Info
| Submission Time | |
|---|---|
| Task | B16 - Frog 1 |
| User | myoshizumi |
| Language | Go (go 1.20.6) |
| Score | 100 |
| Code Size | 946 Byte |
| Status | AC |
| Exec Time | 4 ms |
| Memory | 4952 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 1 ms | 1564 KiB |
| 0_01 | AC | 0 ms | 1560 KiB |
| 0_02 | AC | 0 ms | 1560 KiB |
| 1_00 | AC | 1 ms | 1560 KiB |
| 1_01 | AC | 1 ms | 1624 KiB |
| 1_02 | AC | 4 ms | 4776 KiB |
| 1_03 | AC | 3 ms | 4772 KiB |
| 1_04 | AC | 4 ms | 4952 KiB |
| 1_05 | AC | 4 ms | 4912 KiB |
| 1_06 | AC | 4 ms | 4952 KiB |
| 1_07 | AC | 4 ms | 4920 KiB |