xyz
user_6197949313
c_cpp
3 years ago
863 B
3
Indexable
// 5 7 // 3 3 9 9 5 // OUTPUT: 6: phan du lon nhat cua tong 1 day con cua A khi chia cho m #include <iostream> #include <algorithm> #include <cmath> #include <set> using namespace std; long maxSubArray(long arr[], long n, long m) { long result = 0; long prefix = 0; set<long> sPrefix; set<long>:: iterator it; sPrefix.insert(0); for (long i = 0; i < n; ++ i) { prefix = (prefix + arr[i]) % m; result = max(result, prefix); it = sPrefix.lower_bound(prefix + 1); if (it != sPrefix.end()) { result = max (result, prefix - (*it) + m); } sPrefix.insert(prefix); } return result; } int main() { long n, m; cin >> n >> m; long arr[n]; for (long i = 0; i < n; ++i) { cin >> arr[i]; } cout << maxSubArray(arr, n, m); return 0; }
Editor is loading...