1155: 春运
Time Limit: 1 Sec Memory Limit: 128 MB
[Submit][Status][Web Board]
Description
春运将至,有关部门要统计春运的人流量。现有一辆公交车,共停N(1<N<1000000)个车站(车站编号为1,2,3,……),然后给出M个人,每个人从a车站上车,然后在b车站下车,你的任务是统计这辆公交车停靠每一站时车上的人数。车上的人数包括本站上车和未下车的人,本站下车的人数不应记录。
Input
每个测试实例第一行为一个整数N,(N <= 1000000).和一个正整数M(M<=1000000),接下来M行每行包括2个整数a b(1 <= a < b <= N)。
当N = 0,输入结束。
Output
每个测试实例输出一行,包括N个整数,第I个数代表这辆公交车停靠第I个车站时车上的人数。
Sample Input
3 2
1 2
2 3
3 3
1 2
1 3
2 3
0
Sample Output
1 1 0
2 2 0
HINT
Source
AC_code~:
#include <stdio.h>
#include <string.h>
#define L 1000005
int a[L],b[L],c[L];
int main()
{
int n,m;
while(~scanf("%d",&n)&&n!=0)
{
scanf("%d",&m);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
while(m--)
{
int x,y;
scanf("%d%d",&x,&y);
a[x]++;
b[y]++;
}
c[1] = a[1] - b[1];
printf("%d",c[1]);
if(n > 1)
{
for(int i = 2; i <= n; i++)
{
c[i] = c[i-1] + a[i] - b[i];
printf(" %d",c[i]);
}
}
printf("\n");
}
}