Mật khẩu

Xem PDF

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

tknhatbm là một người nghiện game. Mỗi ngày tknhatbm đều vô game và chơi tới đêm khuya. Hôm nay, trong lúc đang chơi thì tknhatbm bị văng game, phát hiện ra mình đã bị hack tài khoản. Để lấy lại tài khoản, tknhatbm cần nhập đúng mật khẩu của mình, nhưng giờ thứ tknhatbm biết là mật khẩu của mình là tổng các số trong dãy \(A\) = \(1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, ...\) có chỉ số từ \(A\) đến \(B\) . Là một người nghiện game nên tknhatbm không biết phải làm sao để khôi phục mật khẩu , đành nhờ các bạn trên LQDOJ giúp.
Yêu cầu : Em hãy viết chương trình giúp Nhật tính ra mật khẩu tài khoản game.

Input:

  • Một dòng duy nhất chứa \(2\) số nguyên dương \(a\)\(b\) \((1 \leq a,b \leq 10^{18})\)

Output:

  • Một dòng duy nhất chứa kết quả của bài toán sau khi chia lấy dư cho \(10^9+7\).

Scoring:

  • Subtask \(1\) (\(50\%\) số điểm): \(a,b \leq 10^6\)
  • Subtask \(2\) (\(50\%\) số điểm): \(a,b \leq 10^{18}\)

Example

Test 1
Input
1 4
Output
8
Note

Các số có chỉ số từ \(1\) đến \(4\)\(1,2,2,3\) có tổng bằng \(1+2+2+3\) \(=\) \(8\)


Bình luận


  • 1
    PY2CTranDinhBaoNam    8:35 p.m. 7 Tháng 5, 2024 chỉnh sửa 18
    def t(n):
        k=round((n*2)**0.5)
        m=k-1
        a=(m*(m+1)*(1+2*m))//6
        b=m*(m+1)//2
        return a+(n-b)*k
    n,m=map(int,input().split())
    print((t(m)-t(n-1))%(int(1e9+7)))
    

    • 1
      luu_bao_han_250113    4:42 p.m. 28 Tháng 4, 2024

      nghiện tới thế luôn à :)))