#include <bits/stdc++.h>
using namespace std;
void valid_string(string s, vector<int> q, int k){
int n = s.length();
vector<int> dp(n);
dp[0] = 1;
int max_len = 1, max_index = 0;
for (int i = 1; i < n; i++){
if(abs(s[i] - s[i-1]) <= k){
dp[i] = dp[i-1]+1;
}
else {
dp[i] = 1;
}
if(dp[i] > max_len){
max_len = dp[i];
max_index = i;
}
}
for (int &i : q){
cout << dp[i] << " ";
}
cout << endl;
int start = max_index - max_len + 1;
cout << s.substr(start, max_len);
}
int main() {
string s = "abaabcadef";
vector<int> q = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int k = 2;
valid_string(s, q, k);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHZhbGlkX3N0cmluZyhzdHJpbmcgcywgdmVjdG9yPGludD4gcSwgaW50IGspewoJaW50IG4gPSBzLmxlbmd0aCgpOwoJCgl2ZWN0b3I8aW50PiBkcChuKTsKCWRwWzBdID0gMTsKCQoJaW50IG1heF9sZW4gPSAxLCBtYXhfaW5kZXggPSAwOwoJCglmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKyl7CgkJCgkJaWYoYWJzKHNbaV0gLSBzW2ktMV0pIDw9IGspewoJCQlkcFtpXSA9IGRwW2ktMV0rMTsKCQl9CgkJZWxzZSB7CgkJCWRwW2ldID0gMTsKCQl9CgkJCgkJaWYoZHBbaV0gPiBtYXhfbGVuKXsKCQkJbWF4X2xlbiA9IGRwW2ldOwoJCQltYXhfaW5kZXggPSBpOwoJCX0KCX0KCQoJZm9yIChpbnQgJmkgOiBxKXsKCQljb3V0IDw8IGRwW2ldIDw8ICIgIjsKCX0KCWNvdXQgPDwgZW5kbDsKCQoJaW50IHN0YXJ0ID0gbWF4X2luZGV4IC0gbWF4X2xlbiArIDE7Cgljb3V0IDw8IHMuc3Vic3RyKHN0YXJ0LCBtYXhfbGVuKTsKCQoJCn0KCmludCBtYWluKCkgewoJCglzdHJpbmcgcyA9ICJhYmFhYmNhZGVmIjsgCgl2ZWN0b3I8aW50PiBxID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDl9OwoJaW50IGsgPSAyOwoJdmFsaWRfc3RyaW5nKHMsIHEsIGspOwoJCglyZXR1cm4gMDsKfQ==