fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void valid_string(string s, vector<int> q, int k){
  5. int n = s.length();
  6.  
  7. vector<int> dp(n);
  8. dp[0] = 1;
  9.  
  10. int max_len = 1, max_index = 0;
  11.  
  12. for (int i = 1; i < n; i++){
  13.  
  14. if(abs(s[i] - s[i-1]) <= k){
  15. dp[i] = dp[i-1]+1;
  16. }
  17. else {
  18. dp[i] = 1;
  19. }
  20.  
  21. if(dp[i] > max_len){
  22. max_len = dp[i];
  23. max_index = i;
  24. }
  25. }
  26.  
  27. for (int &i : q){
  28. cout << dp[i] << " ";
  29. }
  30. cout << endl;
  31.  
  32. int start = max_index - max_len + 1;
  33. cout << s.substr(start, max_len);
  34.  
  35.  
  36. }
  37.  
  38. int main() {
  39.  
  40. string s = "abaabcadef";
  41. vector<int> q = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  42. int k = 2;
  43. valid_string(s, q, k);
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
1 2 3 4 5 6 7 1 2 3 
abaabca