http://poj.org/problem?id=2352
模板
/************************************************ * Author :Powatr * Created Time :2015-8-13 16:18:10 * File Name :POJ2352stars.cpp ************************************************/ #include <cstdio> #include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cmath> #include <string> #include <vector> #include <queue> #include <deque> #include <stack> #include <list> #include <map> #include <set> #include <bitset> #include <cstdlib> #include <ctime> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 typedef long long ll; const int MAXN = 1e5 + 10; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; const int m = 32000 + 10; int level[MAXN]; int C[MAXN]; int query(int x) { int ret = 0; while( x > 0){ ret += C[x]; x -= x&-x; } return ret; } void update(int x) { while( x <= m){ C[x]++; x += x&-x; } } int main(){ int n; while(~scanf("%d", &n)){ memset(level, 0, sizeof(level)); memset(C, 0, sizeof(C)); int x, y; for(int i = 1; i <= n; i++){ scanf("%d%d", &x, &y); level[query(x+1)]++; update(x+1); } for(int i = 0; i < n; i++) printf("%d ",level[i]); } return 0; }