Sub-array Factor
bool has_factor_k_subarray(const vector<int> &ar, const int k) {
// modify to accumulative array
vector<int> cum_sum(ar.size());
partial_sum(ar.begin(), ar.end(), cum_sum.begin());
for (int i = 0; i < ar.size(); i++) {
for (int j = i + 1; j < ar.size(); j++) {
int sub_seq_sum = (ar[j] - ar[i]);
if (sub_seq_sum >= k && sub_seq_sum % k == 0)
return true;
}
}
return false;
}
int main()
{
vector<int> ar = {0,1,2,3,4,5,6,7,6,7};
cout << has_factor_k_subarray(ar, 2) << endl;
cout << has_factor_k_subarray(ar, 1000) << endl;
}Last updated