// Latihan bergaya OSN, Bab 14, soal 3 -- pembahasan. // // Jumlah a[l..r] habis dibagi k tepat ketika pre[r] dan pre[l-1] // bersisa sama. Jadi yang dihitung adalah pasangan awalan bersisa sama. #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; long long k; cin >> n >> k; vector cacah(k, 0); cacah[0] = 1; // awalan kosong long long sisa = 0, hasil = 0; for (int i = 0; i < n; i++) { long long x; cin >> x; sisa = ((sisa + x) % k + k) % k; // tetap tidak negatif hasil += cacah[sisa]; cacah[sisa]++; } cout << hasil << "\n"; return 0; }