Điểm:
800 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Nhập 2 số nguyên dương \(i, j\), in ra tổng các số nguyên dương từ \(i\) đến \(j\).
\(S = i + (i + 1) + (i + 2) + .... + j\)
\((1 \leq i \leq j \leq 10^{18})\)
Input
- Dòng 1 chứa số \(i\)
- Dòng 2 chứa số \(j\)
Output
- Chứa một số nguyên \(S\) là tổng của dãy số
Scoring
- Subtask \(1\) (\(80\%\) số điểm): \(j \leq 10^9\)**
Example
Test 1
Input
3
5
Output
12
Note
Giải thích: \(3 + 4 + 5 = 12\)
Bình luận
Hint 1: \(1\) vòng \(for\) từ \(i\) đến \(j\). Tuy nhiên vì \(i \le j \le 10^{18}\) \(\rightarrow\) Sẽ bị TLE.
Hint 2: Sử dụng công thức \(\frac{(j + i) \times ((j - i) + 1)}{2}\). Tuy nhiên nếu chỉ khai báo
int
hoặclong long
thì sẽ bị \(\color{red}{\text{Wrong Answer}}\).Hint 3: Là sự kết hợp giữa Hint 2 và bignum. Các bạn có thể lấy code bignum ở đây
Python sử dụng hint 2 auto ac
Hint 2 dễ hiểu hơn
((i + j) * ((j-i)+1))//2
cảm ơn bạn nha. mình ac rồi
Hehe ko sao đâu
(Mình là acc chính của phucnguyen2012 do acc kia bị mute rồi)
Ủa sao tôi cũng làm thế mà bị WA, chắc do số lớn quá bị sai số hả
Mình vẫn ac bình thường mà cho mình xem code WA của bạn đi
À tôi mới AC rồi nha cảm ơn ông nhiều =)
ok
Hint 4: Sử dụng __int128 thay cho bignum
python 1 đấm ăn luôn