移动电话mobile-telephone

这是一个关于处理基站报告和响应特定矩形区域内活动手机数查询的程序。程序接收到不同指令,如更新手机数量、计算指定区域的总手机数等,并对特定指令作出响应。输入和输出格式都有详细的描述,包括矩阵规模和数值范围。
摘要由CSDN通过智能技术生成

题目描述

假定在韶关地区的第四代移动电话基站如下述方式运行。该地区划分成很多四方块,这些四方形的小区域形成了S×S 矩阵。该矩阵的行、列均从 0开始编码至 S−1 。每个方块区域包含一个基站。

方块内活动的手机数量是会发生变化的,因为手机用户可能从一个方块区域进入到另一个方块区域,也有手机用户开机或关机。每个基站会报告所在区域内手机活动数的变化。

写一个程序,接收这些基站发来来的报告,并应答关于指定矩形区域内的活动手机数的查询

输入格式

输入从标准输入设备中读取表示查询的整数并向标准输出设备写入整数以应答查询。输入数据的格式如下。每一行输入数据包含一个表示指令编号的整数及一些表示该指令的参数、指令编号及对应参数的意义如下表所示。

假定输入中的各整数值总是在合法范围内,无需对它们进行检验。具体说,例如AA是一个负数,它不可能将某一方块区域中的手机数减小到 00 以下。

下标都是从 00 开始的,即若矩阵规模为4×4、必有 0≤X≤3 且 0≤Y≤3。

我们假定: 矩阵规模:1≤S×S≤700×700

任何时候方块区域内的活动手机数:0≤V≤32767

修改值:−32768≤A≤32767

不存在指令号:U>3

输出格式

你的程序对除了编号为 2 以外的指令无需做任何应答。若指令编号为 2, 程序须向标准输出设备写入一行应答的答案。

输入样例

0 4
1 1 2 3
2 0 0 2 2
1 1 1 2
1 1 2 -1
2 1 1 2 3
3

输出样例

3
4

来源 

韶关2019年市赛。

AC代码 

#include<iostream>
using namespace std;
int p[705][705];
int s,x,y,a,l,b,r,t,u;
int main(){
  while(1){
    cin>>u;
    if(u==0){
      cin>>s;
    }
    else{
      if(u==1){
        cin>>x>>y>>a;
        p[x][y]+=a;
        if(p[x][y]<0) p[x][y]=0;
      }
      else{
        if(u==2){
          cin>>l>>b>>r>>t;
          int sum=0;
          for(int i=l;i<=r;i++){
            for(int j=b;j<=t;j++){
              sum+=p[i][j];
            }
          }
          cout<<sum<<endl;
        }
        else{
          break;
        }
      }
    }
  }
  return 0;//养成好习惯!!!
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值