Can someone help me, I don't understand where the error is in the code and reasoning. I'm getting the wrong answer, I'm getting extra segments in the answer
My code:
~~~~~
include
include
using namespace std;
int f(int n, long long s, vector& a) { int ans = 0; int i = 0; long long sum = 0; for(int j = 0; j < n; j++) { // move the right pointer here sum += a[j]; // update the amount while(sum > s) { // as long as the sum on the segment [i, j] //is greater than or equal to s, move the left pointer
sum -= a[i]; // update the amount i++; // move the right pointer } // since sum < s -> i is not included in the segment => segment length = j — i ans += (j — i); } return ans; }
int main() { int n; long long s; cin >> n >> s; vector a(n); for(int i = 0; i < n; i++) cin >> a[i]; cout << f(n, s, a); return 0; }~~~~~