Advertisement
SuitNdtie

P1113:RO

Oct 8th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. Source #691261:
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. typedef long long int ll;
  5. int main()
  6. {
  7.     int n,k;
  8.     scanf("%d %d",&n,&k);
  9.     char str[n+10];
  10.     scanf("%s", str);
  11.    
  12.     map<ll,int> qsmap; //pair of {qsvalue,minindex}
  13.     qsmap.insert({0,-1 });
  14.     ll sum = 0;
  15.     int ans = 0;
  16. //  printf("-1 ");for(int i = 0 ; str[i] != '\0' ; i ++)printf("%d ",i);printf("\n 0 ");
  17.    
  18.     for(int i = 0 ; str[i] != '\0' ; i ++){
  19.         if(str[i] == 'O')sum --;
  20.         else sum += k;
  21.     //  printf("%d ",sum);
  22.         if(qsmap.count(sum) == 0)qsmap.insert({sum,i});
  23.         std::map<ll,int>::iterator its;
  24.         its = qsmap.find(sum);
  25.         if(its != qsmap.end()){
  26.             ans = max(ans,i - its->second);
  27.         }
  28.     }
  29.     printf("%d",ans);
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement