/*
题目已按x,y轴排序 画个图就理解了
*/#include < stdio.h > #include < stdlib.h > const int MAXN = 15001 ; int n; int a[ 32001 ]; // 树状数组 int level[MAXN]; int lowbit( int t){ return t & ( - t); } void add( int t){ while (t <= 32001 ){ a[t] ++ ; t += lowbit(t); }} int sum( int t){ int ans = 0 ; while (t > 0 ){ ans += a[t]; t -= lowbit(t); } return ans;} int main(){ int x, y; scanf( " %d " , & n); for ( int i = 0 ; i < n; ++ i){ scanf( " %d%d " , & x, & y); level[sum(x + 1 )] ++ ; // 0<=X,Y<=32000 add(x + 1 ); } for ( int i = 0 ; i < n; ++ i) printf( " %d\n " ,level[i]); return 0 ;}