A Very Big Sum

Problem

Hitung jumlah semua elemen dalam array bilangan bulat yang sangat besar. Gunakan tipe data yang mendukung nilai hingga ~10¹⁸.

Input

  • Baris 1: integer n (ukuran array)

  • Baris 2: n bilangan bulat (masing-masing hingga ~10⁹)

Output

  • Satu bilangan: total penjumlahan

Contoh

Input:
5
1000000001 1000000002 1000000003 1000000004 1000000005

Output:
5000000015

Intuisi

Sama seperti Simple Array Sum, tetapi:

  • Gunakan long (64-bit) agar tidak overflow.

  • Jumlah maksimum: n = 10⁵, setiap elemen 10⁹ → total 10¹⁴ (masih aman di long).


Contoh Langkah-demi-Langkah

[1000000001, 1000000002, ...]
0 → +1000000001 → ... → 5000000015

Algoritma

sum = 0 (tipe long)
untuk setiap x di array:
    sum += x
kembalikan sum
  • Waktu: O(n)

  • Ruang: O(1)


Implementasi

public static long aVeryBigSum(List<Long> ar) {
    long sum = 0;
    for (long x : ar) {
        sum += x;
    }
    return sum;
}
func aVeryBigSum(ar []int64) int64 {
    sum := int64(0)
    for _, x := range ar {
        sum += x
    }
    return sum
}

Ringkasan

Bahasa
Tipe Data
Kode Inti
Kompleksitas

Java

long

sum += x;

O(n)

Go

int64

sum += x

O(n)

Gunakan long/int64 → aman dari overflow. Solusi sederhana, efisien, dan robust.

Last updated