热身练习的水题。。用树状数组。不说了。。。
庆祝一下 第一百个博客。。。。。。。。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int low(int x){ return x&-x; }
const int maxn = 1e5+5;
const int mod = 9901;
int num[maxn];
int ans[maxn];
void add(int x,int val)
{
for(int i=x;i<maxn;i+=low(i))
num[i] += val;
}
int sum(int x)
{
int res = 0;
for(int i=x;i>0;i-=low(i))
res += num[i];
return res;
}
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
int a,b;
memset(num,0,sizeof num);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a,&b);
add(a,1);
if(b != n)
add(b+1,-1);
}
for(int i=1;i<=n;i++)
{
printf("%d%c",sum(i),i==n?'\n':' ');
}
}
return 0;
}