#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXN = 32010;
int c[MAXN];
int lowbit( int x )
{
return x&(-x);
}
void UFset(int pos, int data)
{
while(pos < MAXN)
{
c[pos] += data;
pos += lowbit( pos );
}
}
int Querry( int pos )
{
int sum = 0;
while(pos > 0)
{
sum += c[pos];
pos -= lowbit( pos );
}
return sum;
}
int main()
{
int i;
int N;
int level, stars[MAXN];
while(scanf("%d", &N) != EOF)
{
int x, y;
memset(stars, 0, sizeof(stars));
for(i = 0; i < N; ++i)
{
scanf("%d %d", &x, &y);
level = Querry( x+1 );
stars[level]++;
UFset(x+1, 1);
}
for(i = 0; i < N; ++i)
printf("%d\n", stars[i]);
}
return 0;
}
poj Stars 2352
最新推荐文章于 2021-01-09 17:00:28 发布