fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <cassert>
  4. #include <cstdio>
  5. #include <cstdlib>
  6. #include <cstring>
  7. using namespace std;
  8.  
  9. std::string operator*(std::string const &s, size_t n)
  10. {
  11. std::string r;
  12. r.reserve(n * s.size());
  13. for (size_t i = 0, j = 0; i < n; ++i, j += s.size())
  14. memcpy (&(r[j]), &(s[0]), s.size());
  15. return r;
  16. }
  17.  
  18. std::string operator^(std::string const &s, size_t n)
  19. {
  20. std::string r = s;
  21. if (n == 0) return std::string(" ");
  22. for (size_t i = 1; i < n; i++)
  23. {
  24. r = s * r.size();
  25. }
  26.  
  27. return r;
  28. }
  29.  
  30. int main()
  31. {
  32. string blank = " ";
  33. string blank2 = blank * 2;
  34. string blank4 = blank2 ^ 2;
  35. string blank8 = blank2 ^ 3;
  36. string blank16 = blank2 ^ 4;
  37.  
  38. for (int i = 0; i < 100; i++)
  39. std::cout << (blank2 ^ i).size() << std::endl;
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0