Salvens

Untitled

Aug 1st, 2023
891
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 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.     for (int i = 0; i < n - 1; ++i) {
  20.         cnt[i][i + 1] = (s[i] == s[i + 1] ? 0 : 1);
  21.     }
  22.     for (int len = 3; len <= n; ++len) {
  23.         for (int l = 0; l + len - 1 < n; ++l) {
  24.             int r = l + len - 1;
  25.             cnt[l][r] = cnt[l + 1][r - 1] + (s[l] == s[r] ? 0: 1);
  26.         }
  27.     }
  28.     long long ans = n;
  29.     for (int len = 2; len <= n; ++len) {
  30.         for (int l = 0; l + len - 1 < n; ++l) {
  31.             int r = l + len - 1;
  32.             if (cnt[l][r] <= k) {
  33.                 ++ans;
  34.             }
  35.         }
  36.     }
  37.     cout << ans << '\n';
  38. }
  39.  
  40. signed main() {
  41.     ios_base::sync_with_stdio(false);
  42.     cin.tie(nullptr);
  43.     cout.tie(nullptr);
  44.  
  45.     int tt = 1;
  46. //    cin >> tt;
  47.     while (tt--) {
  48.         solve();
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment