fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <map>
  4. #include <set>
  5. #include <cmath>
  6. #include <vector>
  7. #include <climits>
  8. #include <string>
  9. #include <algorithm>
  10. #include <sstream>
  11. using namespace std;
  12.  
  13. vector<string> split(string haystack, string needle) {
  14. vector<string> result;
  15. int startPos = 0;
  16. int foundPos = haystack.find(needle, startPos);
  17. while (foundPos != string::npos) {
  18. int count = foundPos - startPos;
  19. string token = haystack.substr(startPos, count);
  20. if (!token.empty()) {
  21. result.push_back(token);
  22. }
  23. startPos = foundPos + needle.length();
  24. foundPos = haystack.find(needle, startPos);
  25. }
  26. string token = haystack.substr(startPos, haystack.length() - startPos);
  27. if (!token.empty()) {
  28. result.push_back(token);
  29. }
  30. return result;
  31. }
  32.  
  33. string nameConvert(const string& name) {
  34. const string DELIMITER = " ";
  35. stringstream builder;
  36. auto parts = split(name, DELIMITER);
  37. for (auto part : parts) {
  38. part[0] = toupper(part[0]);
  39. transform(part.begin() + 1, part.end(), part.begin() + 1, ::tolower);
  40. builder << part << DELIMITER;
  41. }
  42. return builder.str();
  43. }
  44.  
  45. string dateConvert(const string& date) {
  46. const string DELIMITER = "/";
  47. stringstream builder;
  48. auto parts = split(date, DELIMITER);
  49. builder << setw(2) << setfill('0') << parts[0] << DELIMITER;
  50. builder << setw(2) << setfill('0') << parts[1] << DELIMITER;
  51. builder << parts[2];
  52. return builder.str();
  53. }
  54.  
  55. string email(string name) {
  56. transform(name.begin(), name.end(), name.begin(), ::tolower);
  57. stringstream builder;
  58. auto parts = split(name, " ");
  59. builder << parts.back();
  60. for (int i = 0;i < parts.size() - 1;i++) {
  61. builder << parts[i][0];
  62. }
  63. builder << "@xyz.edu.vn";
  64. return builder.str();
  65. }
  66.  
  67. string password(string date) {
  68. auto parts = split(date, "/");
  69. stringstream builder;
  70. for (auto part : parts) {
  71. builder << stoi(part);
  72. }
  73. return builder.str();
  74. }
  75.  
  76. int main() {
  77. ios_base::sync_with_stdio(false);
  78. cin.tie(NULL);
  79.  
  80. int query;cin >> query;
  81. cin.ignore();
  82. for (int i = 0;i < query;i++) {
  83. string line;getline(cin, line);
  84. auto parts = split(line, " ");
  85. string dob = parts.back();
  86. stringstream builder;
  87. for (int i = 0;i < parts.size() - 1;i++) {
  88. builder << parts[i] << " ";
  89. }
  90. string name = builder.str();
  91. cout << email(name) << " " << password(dob) << endl;
  92. }
  93. return 0;
  94. }
  95.  
  96.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty