fork download
  1. #include <iostream>
  2. #include <map>
  3. #include <list>
  4.  
  5. const std::map<char, std::string> rules {
  6. {'a', "bc"},
  7. {'b', "a"},
  8. {'c', "aaa"},
  9. };
  10. int main()
  11. {
  12. std::string line;
  13. while(getline(std::cin, line))
  14. {
  15. std::list<char> seq;
  16. for(char c: line)
  17. seq.push_back(c);
  18.  
  19. while(seq.size() > 1)
  20. {
  21. char front = seq.front();
  22. seq.pop_front();
  23. seq.pop_front();
  24. for(char c: rules.at(front))
  25. seq.push_back(c);
  26. for(char c: seq)
  27. std::cout << c;
  28. std::cout << std::endl;
  29. }
  30. std::cout << std::endl;
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0s 15232KB
stdin
aaa
aaaaa
stdout
abc
cbc
caaa
aaaaa
aaabc
abcbc
cbcbc
cbcaaa
caaaaaa
aaaaaaaa
aaaaaabc
aaaabcbc
aabcbcbc
bcbcbcbc
bcbcbca
bcbcaa
bcaaa
aaaa
aabc
bcbc
bca
aa
bc
a

aaabc
abcbc
cbcbc
cbcaaa
caaaaaa
aaaaaaaa
aaaaaabc
aaaabcbc
aabcbcbc
bcbcbcbc
bcbcbca
bcbcaa
bcaaa
aaaa
aabc
bcbc
bca
aa
bc
a