在一家重要的研究机构工作,小希参与了一项重要的试验:使用激光装置融化巧克力。

该装置有包含 n×m 个单元的一个长方形区域以及一个机械臂组成,每个单元为一个 1×1  的小方块。机械臂上有两束激光垂直射向其表面,任何时候激光束都会射向两个单元的中心。由于两个激光束发射装置装在同一个机械臂上,故移动是同步的,也就是说,移动都在同一方向上。

已知的事实为:

  • 开始时整个区域被大小为 n×m 的巧克力块覆盖,两束激光均处于区域上方且已激活

  • 只有被激光射向单元的巧克力将融化,其他单元内的不受影响

  • 机械臂的任何移动必须平行于区域的边缘,每次移动后激光都会同时射向两个单元的中心

  • 任何时候激光都只能射向本区域

给出 n 和 m,表示区域的大小,行号从上往下从 1 到 n,列号从左到右为 1 到 m

给出两束激光最开始时的位置 (x1,  y1) 和 (x2,  y2),其中 x1x2 为行号,y1y2 为列号。

请找出这个区域内有多少单元的巧克力不能被融化。

#include<iostream>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int main()
{int t,n,m,x1,y1,x2,y2,x0,y0,xm,ym;cin>>t;for(int i=0;i<t;i++){   int sum=0;cin>>n>>m>>x1>>y1>>x2>>y2;x0=abs(x1-x2);y0=abs(y1-y2);if(y0==0){   if(x0<=n/2){cout<<0<<endl;}if(x0>n/2){ sum=m*n-2*(n-max(x1,x2)+1)*m;cout<<sum<<endl;}}else if(x0==0){   if(y0<=m/2){cout<<0<<endl;}if(y0>m/2){ sum=m*n-2*(m-max(y1,y2)+1)*n;cout<<sum<<endl;}}else {if(x0<=n/2&&y0<=m/2){sum=2*x0*y0;cout<<sum<<endl;}if(x0>n/2&&y0<=m/2){   sum=n*m-2*(n-max(x1,x2)+min(x1,x2))*(m-max(y1,y2)+min(y1,y2));cout<<sum<<endl;} if(x0<=n/2&&y0>m/2){   sum=n*m-2*(n-max(x1,x2)+min(x1,x2))*(m-max(y1,y2)+min(y1,y2));cout<<sum<<endl;} if(x0>n/2&&y0>m/2){   sum=n*m-2*(n-max(x1,x2)+min(x1,x2))*(m-max(y1,y2)+min(y1,y2));cout<<sum<<endl;} }}
}

数组12:激光与巧克力相关推荐

  1. 使用matplotlib画3d平面风场_新篇章:12激光SLM金属3D打印机开卖,速度提升20倍,工业批量化生产新利器...

    南极熊导读:12激光器SLM金属3D打印机的到来,或许会对金属加工行业产生重大影响.由于打印生产效率的大幅提高,按照目前的金属3D打印服务价格,一个百万元级别的零件打印制造订单,可能几天就可以完成了: ...

  2. 12、数据系统内置功能(字符串、数组、时间、Math、遍历器、对象成员检测、Object静态方法、对象序列化、正则表达式)

    目录 12.1字符串 12.1.1特效标签 12.1.2字符串截子串 12.2 数组 12.3时间 12.4Math 12.5遍历器 1.for 循环 2.for in 循环  (es5的技术) 3. ...

  3. vue 数组中嵌套数组_来,一起聊聊Excel中的数组

    有人说数组是Excel函数的精华,也有人说数组是Excel函数的糟粕,男说男有理女说女有爱,各有各的理由--所以王源说世间没有真正的感同身受.但不管怎么说吧,数组作为Excel函数进阶后的知识,是相当 ...

  4. Numpy关于数组的基本使用

    Numpy关于数组的基本使用 D系鼎溜已关注 2020.03.27 17:34:14字数 1,713阅读 165 附上参考链接 https://www.runoob.com/numpy/numpy-t ...

  5. C/C++动态二维数组的内存分配和释放

    C语言: 1 //二维数组动态数组分配和释放 2 //数组指针的内存分配和释放 3 //方法一 4 char (*a)[N];//指向数组的指针 5 a = (char (*)[N])malloc(s ...

  6. JS里的居民们7-对象和数组转换

    编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = {"Tony": {"Math": 95,&q ...

  7. arraylist 初始化_Java二维数组和动态数组ArrayList 类

    Java二维数组 Java 语言中提供的数组是用来存储固定大小的同类型元素. 1.二维数组初始化和声明 数组变量的声明,和创建数组可以用一条语句完成,如下所示: int a[][] = new int ...

  8. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  9. Java数据结构和算法(二)——数组

    上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍.本篇博客我们介绍数据结构的鼻祖--数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要 ...

最新文章

  1. 31个好用的 Python 字符串方法,建议收藏!
  2. CodeAnyWhere
  3. JSON和XML:它们如何比较?
  4. 读取和设置SPFIELD的值
  5. 吴恩达机器学习学习笔记第六章:机器学习中的线性代数操作python3版(含numpy、panda库的使用)
  6. java对日期进行排序_Java对日期时间值的集合进行排序
  7. 最新支付宝扫码点餐系统小程序源码带部署教程
  8. cpu单核性能测试软件,CPU常用跑分软件 你知道那些?
  9. x的x分之一次方极限x趋于0_x分之e的x次方减一的极限
  10. 笔记本计算机无法上无线网络,笔记本电脑连不上无线网络的处理方法
  11. 关于JAVAFX的鼠标单击事件案例
  12. ILLEGAL_ISR非法中断问题
  13. EMV规范(九)——持卡人验证(CVM)三
  14. fileReader学习-前端展示本地图片
  15. 译文 :图文教程,8步教你变身数据科学家
  16. python机器学习思维导图脑图(完整版)
  17. oracle 查询秒,oracle 查询N秒之前的数据
  18. 推荐一个go写的RTSP转直播工具
  19. rman初级知识(读书笔记)
  20. https开头的网址是什么意思_网站https含义是什么?工作原理又是什么

热门文章

  1. java 获得唯一 数字_java生成唯一数字
  2. STL:string容器特性、定义、初始化、等号、取值、拼接、查找、替换、比较、字串、插入、删除
  3. blender绑定后,姿态模式 骨骼动 模型不动
  4. KR通过Server酱通知
  5. php+点击图片跳转网页,怎么在图片上加超链接 点击图片跳转到指定网页
  6. HBUOJ--走台阶
  7. C语言数据结构实现——一元多项式的基本运算
  8. 串口、终端应用程序 API termios
  9. HTML,css和JavaScript的基础学习—html篇
  10. thingy_创建自己的手机条形码Thingy