fork(1) download
  1. #include <iostream>
  2. #include <string>
  3. typedef unsigned int uint;
  4.  
  5. std::string simpletransform(
  6. const std::string &line,
  7. const std::string &key,
  8. const uint number);
  9. int main()
  10. {
  11. std::string line="thisisamessage";
  12. uint number = 5;
  13. std::string key = "32154";
  14. std::cout<<simpletransform(line,key,number)<<std::endl;
  15. return 0;
  16. }
  17. std::string simpletransform(
  18. const std::string &line,
  19. const std::string &key,
  20. const uint number)
  21. {
  22. std::string resultstr;
  23. std::string substr;
  24. size_t N = line.size()%number;
  25. size_t i=0;
  26. for(size_t j=0;i<N-number;i++,j++)
  27. {
  28. if(i%number==0)
  29. {
  30. substr = line.substr(i,number);
  31. j=0;
  32. if(substr.size()!=number) break;
  33. }
  34. auto temp = static_cast<uint>(key[j])-49;
  35. resultstr += substr[temp];
  36. }
  37. i=0;
  38. for(size_t count =0;count!=number;count++)
  39. {
  40. auto p = static_cast<uint>(key[count])-49;
  41. if(p>=N)
  42. continue;
  43. resultstr += substr[p];
  44. }
  45. return resultstr;
  46. }
  47.  
Success #stdin #stdout 0s 3232KB
stdin
Standard input is empty
stdout
ihtismassegase