Lipon là một cậu bé đam mê toán học, cậu rất muốn khám phá ra nhưng điều mới lạ trong toán học. Một ngày nọ, cậu khám phá ra dãy số Fibonacci, Lipon càng tìm hiểu sâu hơn thì biết được dãy số ấy được tạo ra bởi Leonardo Fibonacci. Cậu ấy liền nghĩ ra một dãy số và đặt tên nó là dãy số Lipon.
Dãy số Lipon được định nghĩa như sau:
- \(L_1\) \(=\) \(14\)
- \(L_i\) \(=\) \((L_{i-1} * 2 + 2) \bmod 1000\)
Khi đi học lại, Lipon giới thiệu cho Anfel (người bạn thân nhất của Lipon) thì Anfel đã thử thách Lipon. Anfel cho Lipon 2 số tự nhiên \(a\) và \(b\) và bảo Lipon tính tổng các số từ số thứ \(a\) đến số thứ \(b\) của dãy số Lipon trong vòng 1 giây. Vì số \(a\) và số \(b\) mà Anfel cho quá lớn nên Lipon không thể tính nhanh được, cậu nhờ các coder (trong đó có bạn) để giải hộ thử thách của Anfel.
Vì là một coder tốt bụng, bạn hãy giúp Lipon nhé.
Input
- Dòng đầu tiên chứa hai số tự nhiên \(a\) và \(b\) \((a\leq b\leq 10^{16})\)
Output
- Dòng đầu tiên là kết quả tìm được
Subtasks
- Subtask 1: \((a\leq b\leq 10^{5})\) (40% số điểm)
- Subtask 2: \((a\leq b\leq 10^{16})\) (60% số điểm)
Example
Test 1
Input
1 10
Output
1348
Bình luận
nếu cái này bảo tính một số thì mình đã tìm ra quy luật nhưng nó bảo tính tổng từ 1->10^16 thì chịu :v
quy luật
14*pow(2,n-1)+pow(2,n-1)+pow(2,n-2)+... cho đến khi n=0
thêm lũy thừa nhị phân và mod cho 1000 nữa nha!
3 bình luận nữa