【模拟】博物馆

前言:补上纪中没写的 b l o g blog blog


题目大意:

有一个博物馆,每天都有很多的人们来参观,这一天,博物馆来了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

思路:

模拟即可,判断一下x的情况,用一个 a n s ans ans记录当前人数,最后还要注意导游也是人,要算入 a n s ans ans中。

代码:

#include
#include
using namespace std;
long long n,ans,x,y,t,ai[1000000];
int main()
{	

     scanf("%d",&n);
     for(int i=1;i<=n;++i)
	{
		scanf("%d%d",&x,&y);
		if(x==0)
		{
		  ans=ans+y+1;
		  ai[++t]=y+1;//+1是考虑到有导游。 
	    }
		if(x==1)
		ans=ans-ai[y];//根据题目要求判断一下。 
		printf("%d",ans);//输出。 
	}
	return 0;
}

你可能感兴趣的:(模拟,jzoj)