Đăng nhập để hỏi chi tiết


Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
long long k;
cin >> n >> k;
vector<long long> a(n);
for (int i = 0; i < n; ++i) cin >> a[i];
unordered_map<long long, long long> mod_count;
mod_count[0] = 1; // Prefix sum = 0 mod k
long long prefix = 0, result = 0;
for (int i = 0; i < n; ++i) {
prefix += a[i];
long long mod = ((prefix % k) + k) % k;
result += mod_count[mod];
mod_count[mod]++;
}
cout << result << endl;
return 0;
}
Đáp án:
Giải thích các bước giải:
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin