描述
春運将至,有關部門要統計春運的人流量。現有一輛公共汽車,共停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;
}