fork(1) download
  1. #include <string>
  2. #include <iostream>
  3. #include <iterator>
  4.  
  5. template <typename InputIter, typename OutputIter>
  6. std::size_t make_dir_names(InputIter begin,
  7. InputIter end,
  8. OutputIter out,
  9. std::size_t group_size,
  10. char separator = '/')
  11. {
  12. char buf[group_size];
  13. std::size_t groups_consumed = 0;
  14. for (;;) {
  15. char *bufp = buf;
  16. while (begin != end && bufp - buf < group_size) {
  17. *bufp++ = *begin++;
  18. }
  19.  
  20. if (begin != end) {
  21. if (groups_consumed) *out++ = separator;
  22. for (bufp = buf; bufp - buf < group_size; ++bufp) {
  23. *out++ = *bufp;
  24. }
  25. ++groups_consumed;
  26. } else {
  27. return groups_consumed;
  28. }
  29. }
  30. }
  31.  
  32. int main()
  33. {
  34. std::string s;
  35. while (!std::cin.eof()) {
  36. std::cin >> s;
  37. make_dir_names(s.begin(), s.end(), std::ostream_iterator<char>(std::cout), 2);
  38. std::cout << std::endl;
  39. }
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0s 3032KB
stdin
2017991
658581
6585
stdout
20/17/99
65/85
65