AcWing 1265. 数星星
原题链接
中等
作者:
Value
,
2020-09-16 09:36:51
,
所有人可见
,
阅读 372
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 32010;
int tr[N], level[N];
int lowbit(int x){
return x & -x;
}
void add(int index){
for(int i = index; i < N; i += lowbit(i)) tr[i] ++ ;
}
int query(int index){
int sum = 0;
for(int i = index; i ; i -= lowbit(i)) sum += tr[i];
return sum;
}
int main(){
int n; cin >> n;
for(int i = 0; i < n; i ++ ){
int x, y; scanf("%d%d", &x, &y);
x ++ ;
level[query(x)] ++ ;
add(x);
}
for(int i = 0; i < n; i ++ ) cout << level[i] << endl;
return 0;
}