Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Source #691261:
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- int main()
- {
- int n,k;
- scanf("%d %d",&n,&k);
- char str[n+10];
- scanf("%s", str);
- map<ll,int> qsmap; //pair of {qsvalue,minindex}
- qsmap.insert({0,-1 });
- ll sum = 0;
- int ans = 0;
- // printf("-1 ");for(int i = 0 ; str[i] != '\0' ; i ++)printf("%d ",i);printf("\n 0 ");
- for(int i = 0 ; str[i] != '\0' ; i ++){
- if(str[i] == 'O')sum --;
- else sum += k;
- // printf("%d ",sum);
- if(qsmap.count(sum) == 0)qsmap.insert({sum,i});
- std::map<ll,int>::iterator its;
- its = qsmap.find(sum);
- if(its != qsmap.end()){
- ans = max(ans,i - its->second);
- }
- }
- printf("%d",ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement