#include<bits/stdc++.h>
using namespace std;
inline int read() {
int x=0,f=1;
char c=getchar();
for (;!isdigit(c);c=getchar()) if (c=='-') f=-1;
for (;isdigit(c);c=getchar()) x=x*10+c-'0';
return x*f;
}
typedef long long giant;
const int maxn=1e5;
struct ant {
int x,w;
} a[maxn];
int b[maxn],c[maxn],n,l,t;
giant cs=0;
inline int up(int x) {
if (x>=0) return x;
return x%l+l;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("test.in","r",stdin);
#endif
n=read(),l=read(),t=read();
for (int i=0;i<n;++i) {
int &x=a[i].x=read(),&w=a[i].w=(read()==1?1:-1);
b[i]=c[i]=up(x+w*t)%l;
}
for (int i=1;i<n;++i) if (a[i].w!=a[0].w) {
int d=up((a[0].x-a[i].x)*a[i].w);
int k=2*t-d;
if (k<0) continue;
cs+=1+k/l;
}
int p=cs*a[0].w;
((p%=n)+=n)%=n;
sort(b,b+n);
for (int i=0;i<n;++i) if (b[i]==c[0]) {
int the=i+(i<n-1 && b[i+1]==b[i] && a[0].w==1);
rotate(b,b+(the>=p?the-p:n-p+the),b+n);
break;
}
for (int i=0;i<n;++i) printf("%d\n",b[i]);
return 0;
}
./Main.cpp: In function ‘int main()’:
./Main.cpp:23:30: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
freopen("test.in","r",stdin);
^