1245. 数组测试试题:博物馆

47 篇文章 0 订阅
28 篇文章 0 订阅

题目描述

从前,有一个偌大的博物馆,每天都会有数以万计的人们来参观,欣赏这里的艺术作品。这一天,博物馆来了N批人,第i批人有Ai个人以及一个导游组成,他们依次到达,但同时也有一些批次的人离开,由于人次太多,博物馆的管理人员递给你一些人数表,就请你来统计一下剩下多少人。

输入

第一行是个整数N,接下来N行。每行两个数,第一个数X,如果X=0则后面接一个数Ai,表示来了Ai个人;如果X=1,那么接下来就有一个数Y,表示来的人中的第Y批离开了。

输出

一个数,表示剩下多少人。

样例输入 
6                                                                                
0 5                                        
0 6                                        
1 1                                        
0 7                                        
0 8                                        
1 3  
样例输出 
16
数据范围限制

对于30%的数据,1≤N≤100,1≤Ai≤1000;
对于100%的数据,1≤N≤1000000,1≤Ai≤1000000。
保证:X只为0或1,Y一定符合要求。

提示

有四批人,每批人要加上一位导游,分别是6,7,8,9人,离开的是第1和3批,即走了6+8=14人,剩7+9=16人。

#include<iostream>
using namespace std;
int a[10000001],n,x,q1,q2,s;//分别表示人数,来去人次数,来/去,来的人数,走的批次,计数器 
int main(){
	cin>>n;//输入总批次 
	for(int i=1;i<=n;i++){
		cin>>x;//输入来/走 
		if(!x){//来
			q1++;//来的批次 
			cin>>a[q1];//输入来的人数 
			a[q1]++;//多1导游 
		}else{//走 
			cin>>q2;//输入走的批次 
			a[q2]=0;//归0 
		}
	}for(int i=1;i<=n;i++)s+=a[i];//算总和 
	cout<<s;//输出 
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值