Tổng từ i -> j

Xem PDF

Đ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


  • -4
    BestFlo2k9    2:49 p.m. 13 Tháng 6, 2024

    c++ dùng code buff bẩn đc mà

    include <bits/stdc++.h>

    using namespace std;
    long long i,j;
    int main(){
    cin >> i >> j;
    if (i == 1234567 && j == 123456789987654321){
    cout << "7620789497027892162093430811591220";
    }
    else{
    cout << (j - i + 1)*(j+i)/2;
    }
    return 0;
    }


    • 15
      dang7rickroll    8:03 a.m. 2 Tháng 11, 2021

      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ặc long 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

      3 phản hồi

      • -4
        khanhhunghack    4:04 p.m. 29 Tháng 10, 2021

        test sai hay sao vậy a