Salvens

C

Aug 1st, 2023
757
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. //#define int long long
  7.  
  8. const long long INF = 1e18 + 7;
  9. const int MAXN = 5e3 + 10;
  10. const int N = 1e5 + 10;
  11.  
  12. unsigned short int cnt[MAXN][MAXN];
  13.  
  14. void solve() {
  15.     int n, k;
  16.     cin >> n >> k;
  17.     string s;
  18.     cin >> s;
  19.     long long ans = n;
  20.     for (int i = 0; i < n - 1; ++i) {
  21.         cnt[i][i + 1] = (s[i] == s[i + 1] ? 0 : 1);
  22.         ans += (cnt[i][i + 1] <= k ? 1 : 0);
  23.     }
  24.     for (int len = 3; len <= n; ++len) {
  25.         for (int l = 0; l + len - 1 < n; ++l) {
  26.             int r = l + len - 1;
  27.             cnt[l][r] = cnt[l + 1][r - 1] + (s[l] == s[r] ? 0: 1);
  28.             ans += (cnt[l][r] <= k ? 1 : 0);
  29.         }
  30.     }
  31.     cout << ans << '\n';
  32. }
  33.  
  34. signed main() {
  35.     ios_base::sync_with_stdio(false);
  36.     cin.tie(nullptr);
  37.     cout.tie(nullptr);
  38.  
  39.     int tt = 1;
  40. //    cin >> tt;
  41.     while (tt--) {
  42.         solve();
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment