计算面积

标题:计算面积 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限

绘图机器的绘图笔初始位置在原点(0, 0),机器启动后其绘图笔按下面规则绘制直线:
1
)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E

2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则绘制直线;指令的格式为X offsetY,表示在横坐标沿纵坐标方向偏移,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
}


全部评论

相关推荐

半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务