我们可以一边扫描,一边计算每一条指令的增量面积(因为对于X轴来说,一直是往一个方向移动)
设执行到前i−1条指令之后,当前点的纵坐标为yi,那么在执行第i条指令时,对应的增量面积为(x−last)∗abs(yi),x和last分别为执行完第i条指令前后的横坐标的值。
按照上述步骤一边计算,一边更新各个坐标的值即可。
绘图机器的绘图笔初始位置在原点 (0,0),机器启动后其绘图笔按下面规则绘制直线:
1)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值 E
2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则 1 绘制直线,指令的格式为 X offsetY,表示在横坐标 X 沿纵坐标方向偏移,offsetY 为正数表示正向偏移,为负数表示负向偏移。给定了横坐标终点值 E 、以及若干条绘制指令,请计算绘制的直线和横坐标轴、以及 X=E 的直线组成图形的面积
首行为两个整数 N E,表示有 N 条指令,机器运行的横坐标终点值 E 接下来 N 行,每行两个整数表示一条绘制指令 XoffsetY,用例保证横坐标 X 以递增排序方式出现,且不会出现相同横坐标X 。取值范围: 0<N≤10000 ,0≤X≤E≤20000.−10000≤offsetY≤10000.
输入
4 10
1 1
2 1
3 1
4 -2
输出
12
说明:通过操作及其最后绘制出如下图形(蓝色为绘制笔绘制的直线)
输入
2 4
0 1
2 -2
输出
4
说明:通过操作机器最后绘制了如下图形