Advertisement
Guest User

String problem

a guest
Sep 15th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.55 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define f(i,a,b) for(int i = (a); i <= (b); i++)
  3.  
  4. typedef long long ll;
  5. using namespace std;
  6.  
  7. const int MAX = 2000005;
  8. int A[MAX], L[MAX], R[MAX], S[MAX], N, K;
  9.  
  10. int main()
  11. {
  12.     string str;
  13.     cin >> K >> str;
  14.     N = str.length();
  15.     f(i,1,N) A[i] = str[i-1] - '0';
  16.     f(i,1,N) S[i] = S[i-1] + A[i];
  17.     f(i,1,MAX-1) L[i] = MAX;
  18.     f(i,1,N) L[S[i]] = min(L[S[i]], i);
  19.     f(i,1,N) R[S[i]] = max(R[S[i]], i);
  20.     ll ans = 0;
  21.     f(i,0,N-1) ans += max(R[S[i]+K] - max(L[S[i]+K],i+1) + 1, 0);
  22.     cout << ans;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement