计算面积
标题:计算面积 | 时间限制: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 }