#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, n) for(ll i = 0; i < n; i++)
#define rep2(i, l, r) for(ll i = l; i < r; i++)
using vi = vector<int>;
using vvi = vector<vi>;
using vll = vector<ll>;
/* ---- */
#define all(A) A.begin(), A.end()
#define elif else if
using pii = pair<ll, ll>;
bool chmin(auto &a, const auto &b) {return a > b ? a = b, 1 : 0;}
bool chmax(auto &a, const auto &b) {return a < b ? a = b, 1 : 0;}
struct IOSetup {
IOSetup() {
cin.tie(0);
ios::sync_with_stdio(0);
}
} iosetup;
template<class T>
void print(vector<T> a) {
for (auto x : a) cerr << x << ' ';
cerr << endl;
}
void print(auto x) {
cerr << x << endl;
}
template<class Head, class... Tail>
void print(Head&& head, Tail&&... tail) {
cerr << head << ' ';
print(forward<Tail>(tail)...);
}
#include<atcoder/modint>
#include<atcoder/convolution>
using namespace atcoder;
using mint=modint998244353;
int table_size=500000;
vector<mint>fac(table_size+1,1),finv(table_size+1,1);
void calc_binom_table(){
for(int i=2;i<=table_size;i++){
fac[i]=fac[i-1]*i;
}
finv[table_size]=fac[table_size].inv();
for(int i=table_size-1;i>=0;i--){
finv[i]=finv[i+1]*(i+1);
}
}
mint binom(int n,int k){
if(n<0||k<0||k>n)return 0;
return fac[n]*finv[k]*finv[n-k];
}
using ld=long double;
void solve(){
int n;
ld x0,y0,d,t;
ld pi=atan2(1.0,1.0)*4.0;
cin>>n>>x0>>y0>>d>>t;
long double theta=atan2(y0,x0);
vector<pair<ld,ld>> P(n);
for(int i=0;i<n;i++){
ld x,y;
cin>>x>>y;
P[i].first=cos(-theta)*x-sin(-theta)*y;
P[i].second=sin(-theta)*x+cos(-theta)*y;
}
map<ld,int> th;
vector<ld> IN(n),OUT(n);
for(int i=0;i<n;i++){
ld r=P[i].first*P[i].first+P[i].second*P[i].second;
double intx=sqrt(r-d*d);
ld phi=atan2(d,intx);
ld psi=atan2(P[i].second,P[i].first);
ld L=psi-phi;
ld R=psi+phi;
if(L<0.0)L+=2*pi;
if(R<0.0)R+=2*pi;
th[L]=1;
th[R]=1;
IN[i]=L;
OUT[i]=R;
}
long long k = t / (2*pi);
ld T=t-k*(2*pi);
th[T]=1;
int cnt=0;
th[0]=1;
th[2*pi]=1;
vector<ld> realt;
for(auto [key,val]:th){
th[key]=cnt;
realt.push_back(key);
cnt++;
}
vector<int> D(cnt,0);
for(int i=0;i<cnt;i++){
int L=th[IN[i]];
int R=th[OUT[i]];
cout<<L<<" "<<R<<endl
for(int p=L;p<R;p++){
D[p]++;
}
}
else{
for(int p=L;p<cnt;p++){
D[p]++;
}
for(int p=0;p<R;p++){
D[p]++;
}
}
}
for(int i=0;i<cnt;i++)cout<<D[i]<<" \n";
ld an=0;
for(int i=0;i<cnt-1;i++){
ld len=realt[i+1]-realt[i];
if(D[i]>0){
if(i<th[T])an+=len*(k+1);
else an+=len*k;
}
}
cout<<fixed<<setprecision(15)<<an<<endl;
}
int main(){
calc_binom_table();
solve();
}
ad