/*
5
1 1
5 1
7 1
3 3
5 5
*/
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
int ans[15010];
ll c[32005];
void add(int x){
while(x<=32001){
c[x]++;
x+=x&(-x);
}
}
ll sum(int x){
ll s=0;
while(x){
s+=c[x];
x-=x&(-x);
}
return s;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
int aa,bb;
scanf("%d%d",&aa,&bb);
ans[sum(aa+1)]++;
add(aa+1);
}
for(int i=0;i<n;++i)
printf("%d\n",ans[i]);
return 0;
}
注意树状数组0的情况
最后树状数组反馈到最上面的极限点应该是32000+1