Compton Scattering

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 800 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Xét một photon giả định, ban đầu có bước sóng \(\lambda_0\) (giống nhau cho mọi truy vấn). Cho photon này lần lượt trải qua các độ dịch bước sóng tương ứng với các góc \(\theta_L, \theta_{L+1}, \ldots, \theta_R\) theo đúng thứ tự chỉ số tăng dần. Hãy xác định năng lượng của photon ngay sau khi trải qua lần tán xạ cuối cùng của truy vấn (ứng với góc \(\theta_R\)).

Sau một lần tán xạ với góc \(\theta\), độ thay đổi bước sóng được tính bởi công thức:

\[ \Delta\lambda=\frac{h}{m_ec}(1-\cos\theta) \]

Trong đó:

  • \(h=6.626\times10^{-34}\) J·s là hằng số Planck.
  • \(m_e=9.109\times10^{-31}\) kg là khối lượng electron.
  • \(c=3\times10^8\) m/s là tốc độ ánh sáng.
  • \(\theta\) là góc tán xạ, tính bằng radian.

Đặt \(C=\frac{h}{m_ec}\). Với mỗi truy vấn \(L,R\), photon bắt đầu lại từ bước sóng \(\lambda_0\) và lần lượt trải qua các góc \(\theta_L,\theta_{L+1},\ldots,\theta_R\).

Khi đó bước sóng cuối cùng là:

\[ \lambda=\lambda_0+C\sum_{i=L}^{R}(1-\cos\theta_i) \]

và năng lượng của photon là \(E=\frac{hc}{\lambda}\).

Để tính nhanh tổng trong mỗi truy vấn, sử dụng mảng tổng tiền tố. Đặt \(S_0=0\)\(S_i=S_{i-1}+(1-\cos\theta_i)\). Khi đó \(\sum_{i=L}^{R}(1-\cos\theta_i)=S_R-S_{L-1}\).

  • Mỗi truy vấn là độc lập với các truy vấn khác.
  • Photon luôn bắt đầu từ cùng bước sóng \(\lambda_0\).

Input

Dòng đầu tiên chứa hai số nguyên \(N,Q\).

Dòng thứ hai chứa số thực \(\lambda_0\).

Dòng thứ ba chứa \(N\) số thực \(\theta_1,\theta_2,\ldots,\theta_N\).

\(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(L,R\).

  • \(1\le N,Q\le2\times10^5\)
  • \(10^{-12}\le\lambda_0\le10^{-6}\)
  • \(0\le\theta_i\le\pi\)
  • \(1\le L\le R\le N\)
  • Mỗi \(\theta_i\) có không quá \(10\) chữ số sau dấu thập phân.

Output

Với mỗi truy vấn, in ra năng lượng \(E\) của photon trên một dòng.

In kết quả dưới dạng scientific notation với đúng 10 chữ số sau dấu thập phân.

Đáp án được chấp nhận nếu sai số tuyệt đối hoặc sai số tương đối không vượt quá \(10^{-9}\).

Example

Test 1

Input
3 3
5e-11
0
1.5707963268
3.1415926536
1 1
1 2
2 3
Output
3.9756000000e-15
3.7917235396e-15
3.4706772345e-15
Note

Với truy vấn 1 1, ta có \(\theta_1=0\) nên bước sóng không thay đổi: \(\lambda=\lambda_0=5\times10^{-11}\). Do đó \(E=3.9756000000\times10^{-15}\).

Với truy vấn 1 2, tổng độ thay đổi bước sóng là \((1-\cos0)+(1-\cos(\pi/2))=1\), nên \(\lambda=\lambda_0+C\)\(E=3.7917235396\times10^{-15}\).

Với truy vấn 2 3, photon bắt đầu lại từ \(\lambda_0\). Vì \(\theta_2\approx\frac{\pi}{2}\)\(\theta_3\approx\pi\), tổng độ thay đổi bước sóng xấp xỉ \(1+2=3\). Do đó \(\lambda=\lambda_0+3C\)\(E=3.4706772345\times10^{-15}\).

Subtask

  • Subtask 1 (30% số điểm): \(N, Q \le 2000\).
  • Subtask 2 (70% số điểm): \(N, Q \le 2 \cdot 10^5\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.