树状数组下标从1开始
但本题x坐标从0开始
所以每个x都要+1
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=15010,M=32010;
int n;
int c[M];
int cnt[N];
int lowbit(int x){
return x&-x;
}
int query(int x){
int res=0;
for(int i=x;i>0;i-=lowbit(i)) res+=c[i];
return res;
}
void add(int x){
for(int i=x;i<M;i+=lowbit(i)) c[i]++;
}
int main(){
cin >> n;
for(int i=0;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
x++;
cnt[query(x)]++;
add(x);
}
for(int i=0;i<n;i++){
printf("%d\n",cnt[i]);
}
return 0;
}