首页 > 其他分享 >华为OD机试C卷(100分)-绘图机器(C语言)

华为OD机试C卷(100分)-绘图机器(C语言)

时间:2024-06-17 14:57:29浏览次数:15  
标签:pre end int OD offsetY long C语言 ans 机试

题目描述

绘图机器的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。

  1. 尝试沿着横线坐标正向绘制直线直到给定的终点E

  2. 期间可以通过指令在纵坐标轴方向进行偏移,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

相关文章

  • codeArts Snap:辅助你的编程神器
    CodeArtsSnap:YourUltimateProgrammingAssistant**IntroductiontoCodeArtsSnap**CodeArtsSnapisaninnovativetooldesignedtostreamlineandenhanceyourprogrammingexperience.Whetheryouareabeginnerlearningtheropesoranexperienceddevelo......
  • 小白的Python+Anaconda+vscode安装教程(win11系统手把手教学)
    python下载安装python下载安装过程下载地址:https://www.python.org/![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/33bd022a0d104a22b9e8caf7abb4e294.png我这里选择了3.7.9版本选中刚才下载的.exe文件,右键-打卡上一个页面点击customizinstallation后......
  • LeetCode 2340. Minimum Adjacent Swaps to Make a Valid Array
    原题链接在这里:https://leetcode.com/problems/minimum-adjacent-swaps-to-make-a-valid-array/description/题目:Youaregivena 0-indexed integerarray nums.Swaps of adjacent elementsareabletobeperformedon nums.A valid arraymeetsthefollowingco......
  • 算法第七天:leetcode之209.长度最小的子数组
    一、长度最小的子数组  209.长度最小的子数组的链接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组[numsl,numsl+1,...,num......
  • Vim基础操作:常用命令、安装插件、在VS Code中使用Vim及解决Vim编辑键盘错乱
    Vim模式普通模式(NormalMode):这是Vim的默认模式,用于执行文本编辑命令,如复制、粘贴、删除等。在此模式下,你可以使用各种Vim命令来操作文本。插入模式(InsertMode):在这个模式下,你可以像在普通的文本编辑器中一样输入文本。从普通模式切换到插入模式,可以使用以下命令:......
  • VS插件开发实现简单的 ViewModel 和 View 之间的切换
    VS插件开发实现简单的ViewModel和View之间的切换1.前言我们在前面一篇中有介绍如何打开文件,如果和ViewModel与View的切换这个场景结合,那么我们也完全有能力写出一段代码来解决。2.代码目标进行*ViewModel.cs和*View.xaml之间的切换。3.可以预见的缺陷我们仅......
  • c语言回顾-结构体
    前言在前面的学习中,我们知道C语言提供了许多内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够的。当我们想描述学生,描述一本书,这时单一的内置类型是不行的。描述一个学生需要名字、年龄、学号、身高、体重等;描述一本书需要作者、出版社、定价......
  • 告密者斯诺登:永远不要信任 OpenAI 或其 ChatGPT 等产品|TodayAI
    为什么 OpenAI 变得越来越难以信任OpenAI,一家以开发先进人工智能技术而闻名的公司,正面临越来越多的信任危机。近期,一些令人不安的迹象使人们对这家公司的透明度和安全性产生了质疑。首先,在OpenAI的旧金山办公室外,有一些身份不明的秘密保安人员,这些人的出现给当地社区带......
  • VSCode使用svn代码管理工具,初次检出失败
    打开vscode,若要使用SVN需要下载相应的插件。 2.安装之后,需要对SVN插件进行配置,配置本地SVN的命令行执行文件地址。点击左下角齿轮,选择“设置Settings”。"svn.path":"C:/ProgramFiles/TortoiseSVN/bin/svn.exe"3.如图所示。设置完毕后重启VSCODE。4.按ctrl+shift......
  • 【odoo | SQL】odoo使用sql语句操作数据库
    概要        Odoo的SQL指的是在Odoo框架内使用SQL语句直接操作数据库。这些操作通常是通过Odoo提供的数据库游标(self.env.cr)来执行的。虽然Odoo主要鼓励使用其ORM(对象关系映射)来进行数据库操作,因为ORM更安全、易维护且与Odoo的模型和视图系统深度集成,但在某些情况下,直......