Cho điểm cơ sở G=(x,y) trên đường cong elliptic E:y2≡x3+ax+b(modp) (G=O). Với số nguyên không âm k (có thể rất lớn, tới 1018), điểm kG (cộng G với chính nó k lần) không được tính bằng cách lặp cộng k lần (quá chậm), mà phải dùng thuật toán Double-and-Add: duyệt các bit của k từ thấp lên cao, ở mỗi bước nhân đôi một điểm tích lũy và cộng dồn G hiện tại (đã nhân đôi) vào kết quả nếu bit tương ứng bằng 1. Quy ước 0⋅G=O.
Cho T truy vấn giá trị k, hãy tính kG cho mỗi truy vấn.
Ví dụ: p=97,a=2,b=3, G=(0,10): 2G=(65,32).
T dòng, mỗi dòng in kết quả kG dạng "x y", hoặc "O" nếu kết quả là điểm vô cực.
Ví dụ:
Đầu vào:
97 2 3
0 10
6
0
1
2
50
7
1000000000000000000
Đầu ra:
O
0 10
65 32
O
10 76
O
Đầu vào:
97 2 3
0 10
1
49
Đầu ra:
0 87
Đang tải editor...