信息學奧賽C++語言: 博物館

【題目描述】
從前,有一個偌大的博物館,每天都會有數以萬計的人們來參觀,欣賞這裏的藝術作品。這一天,博物館來了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

【樣例解釋】
有四批人,每批人要加上一位導遊,分別是6,7,8,9人,離開的是第1和3批,即走了6+8=14人,剩7+9=16人。

代碼

#include<cstdio>
using namespace std;
long long n,m[100001],s,k,a,b;
int main()
{
	scanf("%d",&n);
	while(n)
    {
        scanf("%d",&a);
        if(a==0)
        {
            scanf("%d",&b);
            m[k]=b+1;
            k++;
            s+=b+1;
        }
        if(a==1)
        {
            scanf("%d",&b);
            s-=m[b];
        }
        n--;
    }
    printf("%d",s);
}
發佈了275 篇原創文章 · 獲贊 26 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章