天天看點

OJ 1089 春運

描述

春運将至,有關部門要統計春運的人流量。現有一輛公共汽車,共停N(1<N<1000000)個車站(車站編号為1,2,3,……),然後給出M個人,每個人從a車站上車,然後在b車站下車,你的任務是統計這輛公共汽車停靠每一站時車上的人數。車上的人數包括本站上車和未下車的人,本站下車的人數不應記錄。

輸入

每個測試執行個體第一行為一個整數N,(N <= 1000000).和一個正整數M(M<=1000000),接下來M行每行包括2個整數a b(1 <= a < b <= N)。

當N = 0,輸入結束。

輸出

每個測試執行個體輸出一行,包括N個整數,第I個數代表這輛公共汽車停靠第I個車站時車上的人數。

輸入樣例 1 

3 2

1 2

2 3

3 3

1 2

1 3

2 3

輸出樣例 1

1 1 0

2 2 0

對于這題我們可以先用數組去存儲每一個站的狀态,一個數組存儲上車一個數組存儲下車,然後輸出的時候設定一個sum為0,然後使sum加每一站的上車的人數減下車的人數,sum的值在整個輸出不會被初始化,是以沒有下車就會被保留

#include <iostream>
#include <cstdio>
using namespace std;
int c[1000005],d[1000005];
int main()
{
    int n,m;
    while(cin>>n&&n)
    {
        cin>>m;
        fill(c,c+n+1,0);
        fill(d,d+n+1,0);
        while(m--)
        {
            int x,y;
            cin>>x>>y;
            c[x]++;
            d[y]++;
        }
        int sum=0;
        for(int i=1;i<=n;i++)
            {
                sum=sum+c[i]-d[i];
                if(i==1)
                cout<<sum;
                else
                    cout<<" "<<sum;
            }
            cout<<endl;
    }
    return 0;
}
           

繼續閱讀