fork(3) download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4. using namespace std;
  5.  
  6. #define MAX 26
  7.  
  8. int main()
  9. {
  10. int sarr[MAX], parr[MAX];
  11. memset(sarr, 0, sizeof(sarr));
  12. memset(parr, 0, sizeof(parr));
  13.  
  14. string sentence = "abd";
  15. string paragraph = "aabaaccaabcadaacbbdaaaabc";
  16.  
  17. for(int i=0; i<sentence.size(); i++)
  18. sarr[sentence[i]-'a']++;
  19.  
  20. for(int i=0; i<paragraph.size(); i++)
  21. parr[paragraph[i]-'a']++;
  22.  
  23. int left=0, right=paragraph.size() - 1;
  24.  
  25. while ( parr[paragraph[right]-'a'] > sarr[paragraph[right]-'a'])
  26. {
  27. parr[paragraph[right]-'a']--;
  28. right--;
  29. }
  30.  
  31. while ( parr[paragraph[left]-'a'] > sarr[paragraph[left]-'a'] )
  32. {
  33. parr[paragraph[left]-'a']--;
  34. left++;
  35. }
  36.  
  37. cout << left << " " << right << endl;
  38.  
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
9 12