不过样例,全WA
#include<bits/stdc++.h>
using namespace std;
struct _{
int a,b,c,id;
_()=default;
_(int a,int b,int c,int id):a(a),b(b),c(c),id(id){}
};
constexpr int K=2e5+3,N=2e5+3;
int bit[K],n,k,cnt[N],ans[N];
inline int lowbit(int qwq){return qwq&-qwq;}
inline void add(int pos,int val){
for(int i=pos;i<=k;i+=lowbit(i)) bit[i]+=val;
return;
}
inline int query(int pos){
int res=0;
for(int i=pos;i;i-=lowbit(i)) res+=bit[i];
return res;
}
void solve(int l,int r,_* t){
if(l==r) return;
int mid=(l+r)>>1;
sort(t+l,t+mid+1,[](const _& x,const _& y)->bool{
return x.b<y.b;
});
sort(t+mid+1,t+r+1,[](const _& x,const _& y)->bool{
return x.b<y.b;
});
int ptr=l;
for(int i=mid+1;i<=r;++i){
while(t[ptr].b<=t[i].b&&ptr<=mid) add(t[ptr++].c,1);
ans[t[i].id]+=query(t[i].c);
}
for(int i=l;i<ptr;++i) add(t[i].c,-1);
solve(l,mid,t),solve(mid+1,r,t);
return;
}
signed main(){
ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
cin>>n>>k;
_ t[n+1];
for(int i=1,a,b,c;i<=n;++i) cin>>a>>b>>c,t[i]=_(a,b,c,i);
sort(t+1,t+1+n,[](const _& x,const _& y)->bool{
if(x.a!=y.a) return x.a<y.a;
if(x.b!=y.b) return x.b<y.b;
return x.c<y.c;
});
for(int i=1,j,s;i<=n;i=j){
j=i;
while(j<=n&&t[j].a==t[i].a&&t[j].b==t[i].b&&t[j].c==t[i].c) ++j;
s=j-i;
for(int p=0;p<s;++p) ans[t[i+p].id]+=p;
}
solve(1,n,t);
for(int i=1;i<=n;++i) ++cnt[ans[i]];
for(int i=0;i<n;++i) cout<<cnt[i]<<'\n';
return 0;
}