Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- //#define int long long
- const long long INF = 1e18 + 7;
- const int MAXN = 5e3 + 10;
- const int N = 1e5 + 10;
- unsigned short int cnt[MAXN][MAXN];
- void solve() {
- int n, k;
- cin >> n >> k;
- string s;
- cin >> s;
- long long ans = n;
- for (int i = 0; i < n - 1; ++i) {
- cnt[i][i + 1] = (s[i] == s[i + 1] ? 0 : 1);
- ans += (cnt[i][i + 1] <= k ? 1 : 0);
- }
- for (int len = 3; len <= n; ++len) {
- for (int l = 0; l + len - 1 < n; ++l) {
- int r = l + len - 1;
- cnt[l][r] = cnt[l + 1][r - 1] + (s[l] == s[r] ? 0: 1);
- ans += (cnt[l][r] <= k ? 1 : 0);
- }
- }
- cout << ans << '\n';
- }
- signed main() {
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- int tt = 1;
- // cin >> tt;
- while (tt--) {
- solve();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment