// Subarray sum Problem #include<bits/stdc++.h> using namespace std ; bool isSumSubarray(int a[], int n, int sum) { unordered_set<int> s ; //cout << "sum = " << sum << endl ; int pre_sum = 0 ; for(int i=0; i<n; i++){ pre_sum += a[i] ; if(pre_sum == sum) return true ; if(s.find(pre_sum - sum) != s.end()) return true ; s.insert(pre_sum) ; } return false ; } int main() { int n ; cin >> n ; int a[n] = {0} ; int sum ; cin >> sum ; for(int i=0; i<n; i++) cin >> a[i] ; bool ans = isSumSubarray(a, n, sum) ; cout << ans << endl ; return 0 ; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter