题目描述
绘图机器的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。
-
尝试沿着横线坐标正向绘制直线直到给定的终点E
-
期间可以通过指令在纵坐标轴方向进行偏移,offsetY为正数表示正向偏移,为负数表示负向偏移
给定的横坐标终点值E 以及若干条绘制指令,
请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。
输入描述
首行为两个整数 N 和 E
表示有N条指令,机器运行的横坐标终点值E
接下来N行 每行两个整数表示一条绘制指令x offsetY
用例保证横坐标x以递增排序的方式出现
且不会出现相同横坐标x
取值范围
0<N<=10000
0<=x<=E<=20000
-10000<=offsetY<=10000
输出描述
一个整数表示计算得到的面积 用例保证结果范围在0到4294967295之内。
用例
输入
4 10
1 1
2 1
3 1
4 -2
输出 12
说明 无
输入
2 4
0 1
2 -2
输出 4
说明 无
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
int n,end_x;
long long ans=0;
long long pre_x=0,pre_y=0;
scanf("%d%d",&n,&end_x);
for(int i=0;i<n;i++){
int x,offsetY;
scanf("%d%d",&x,&offsetY);
ans+=(x-pre_x)*abs(pre_y);
pre_x=x;
pre_y+=offsetY;
}
if(end_x>pre_x){
ans+=(end_x-pre_x)*abs(pre_y);
}
printf("%ld",ans);
return 0;
}
标签:pre,end,int,OD,offsetY,long,C语言,ans,机试
From: https://blog.csdn.net/qq_45721938/article/details/139722128