Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define f(i,a,b) for(int i = (a); i <= (b); i++)
- typedef long long ll;
- using namespace std;
- const int MAX = 2000005;
- int A[MAX], L[MAX], R[MAX], S[MAX], N, K;
- int main()
- {
- string str;
- cin >> K >> str;
- N = str.length();
- f(i,1,N) A[i] = str[i-1] - '0';
- f(i,1,N) S[i] = S[i-1] + A[i];
- f(i,1,MAX-1) L[i] = MAX;
- f(i,1,N) L[S[i]] = min(L[S[i]], i);
- f(i,1,N) R[S[i]] = max(R[S[i]], i);
- ll ans = 0;
- f(i,0,N-1) ans += max(R[S[i]+K] - max(L[S[i]+K],i+1) + 1, 0);
- cout << ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement