fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. struct Node {
  6. map<string, Node*> children;
  7. map<string, int> files;
  8. };
  9.  
  10. int main()
  11. {
  12. vector<vector<string>> queries;
  13. queries.push_back({"ADD", "/dir1/dir2/file.txt", "10"});
  14. queries.push_back({"COPY", "/not-existing.file", "/dir1/dir2/"});
  15. queries.push_back({"COPY", "/dir1/dir2/file.txt", "/dir1/file.txt"});
  16. queries.push_back({"ADD", "/dir1/file.txt", "15"});
  17. queries.push_back({"COPY", "/dir1/file.txt", "/dir1/dir2/file.txt"});
  18. queries.push_back({"GET", "/dir1/file.txt"});
  19. queries.push_back({"GET", "/not-existing.file"});
  20.  
  21. Node* root_node = new Node(); // Create empty root node
  22.  
  23. for (auto query : queries) {
  24. vector<string> tokens;
  25. std::istringstream iss(query[1]);
  26. string token;
  27. std::getline(iss, token, '/');
  28. while (std::getline(iss, token, '/')) {
  29. tokens.push_back(token);
  30. cout << token << " , ";
  31. }
  32. }
  33.  
  34.  
  35. // Node* curr_node = root_node;
  36. // for (int i = 0; i < tokens.size() - 1; i++) {
  37. // if (curr_node->children.find(tokens[i]) != curr_node->children.end()) {
  38. // // This means already exists
  39. // curr_node = curr_node->children[tokens[i]];
  40. // cout << "GOING IN\n";
  41. // } else {
  42. // // Create new node
  43. // Node* new_node_created = new Node();
  44. // curr_node->children[tokens[i]] = new_node_created;
  45. // curr_node = curr_node->children[tokens[i]];
  46. // cout << "NEW CREATED\n";
  47. // }
  48. // }
  49.  
  50. // // Last me file add
  51. // if (curr_node->files.find(tokens.back()) != curr_node->files.end()) {
  52. // // Means file already exists
  53. // return false;
  54. // } else {
  55. // curr_node->files[tokens.back()] = 10;
  56. // return true;
  57. // }
  58. return 0;
  59. }
  60.  
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
dir1 , dir2 , file.txt , not-existing.file , dir1 , dir2 , file.txt , dir1 , file.txt , dir1 , file.txt , dir1 , file.txt , not-existing.file ,