数状数组解决:
小的trick:
将x的值+1
CODE:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<queue>
#include<map>
#include<sstream>
#include<iostream>
using namespace std;
#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)
#define DOR(i,a,b) for(int (i)=(a);(i)>=(b);(i)--)
#define bug puts("Fuck");
#define LL long long
#define pb push_back
#define mp make_pair
#define nMax 32002
#define eps 1e-8
#define inf 0x7fffffff
int sum[nMax];
int n;
int lowbit(int x) {return x&-x;}
int Sum(int x) {
int ans=0;
while(x) {
ans += sum[x];
x-= x&-x;
}
return ans;
}
int Insert(int x) {
while(x<nMax) {
sum[x]++;
x+= x&-x;
}
return 0;
}
int ans[nMax];
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
#endif
while(~scanf("%d",&n)){
int x,y;
FOR(i,0,n-1) ans[i]=0;
FOR(i,1,n){
scanf("%d%d",&x,&y);
x+=1;
ans[Sum(x)]++;
Insert(x);
}
FOR(i,0,n-1) printf("%d\n",ans[i]);
}
return 0;
}