计算面积
标题:计算面积 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
绘图机器的绘图笔初始位置在原点(0, 0),机器启动后其绘图笔按下面规则绘制直线:
1)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E。
2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则1 绘制直线;指令的格式为X offsetY,表示在横坐标X 沿纵坐标方向偏移,offsetY为正数表示正向偏移,为负数表示负向偏移。
package main
import (
"fmt"
)
func main() {
n,e:=0,0
fmt.Scan(&n,&e)
data:=make([][2]int, n)
for i := 0; i < n; i++ {
for j := 0; j < 2; j++ {
fmt.Scan(&data[i][j])
}
}
fmt.Println(foo(data, e)) //12
}
func foo(data [][2]int, xEnd int) int {
x, y := 0, 0
res := 0
for _, v := range data {
tmp := (v[0] - x) * y
if tmp < 0 {
res -= tmp
} else {
res += tmp
}
x = v[0]
y += v[1]
}
if x < xEnd {
tmp := (xEnd - x) * y
if tmp < 0 {
res -= tmp
} else {
res += tmp
}
}
return res
}