统计每个连续段的长度

#include<iostream>
#include<vector>
#include<string>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n, k;
	string s;
	cin >> n >> k >> s;
	vector<int>len;
	int cnt = 1;
	for (int i = 1; i < n; i++) {
		if (s[i] == s[i - 1 ])cnt++;
		else {
			len.push_back(cnt);
			cnt = 1;
		}
	}
	len.push_back(cnt);
	int m = len.size();
	long long ans = 0;
	if (k > m)ans = 0;
	else if (k == 1) {
		for (int i = 0; i < m; i++) {
			ans += (long long)len[i] * (len[i] + 1) / 2;
		}
	}
	else {
		for(int i = 0; i <= m - k; i++) {
			ans += (long long)len[i] * len[i + k - 1];
		}
	}
	cout << ans << endl;
	return 0;
}