#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,l,t;
int x[N],w[N],st=1;
int main(){
scanf("%d%d%d",&n,&l,&t);
t%=l;
for(int i=1;i<=n;i++){
scanf("%d%d",&x[i],&w[i]);
if(w[i]==1) x[i]+=t;
if(w[i]==2) x[i]-=t;
if(x[i]<0) st--,x[i]+=l;
if(x[i]>=l) st++,x[i]-=l;
}
sort(x+1,x+n+1);
for(int i=1;i<=n;i++){
int tp=st+i-1;
if(tp<=0) tp+=n;
if(tp>n) tp-=n;
printf("%d\n",x[tp]);
}
}
一看像某年noip题,然后发现只要记录起始位置就行了